summaryrefslogtreecommitdiffstats
path: root/vendor/basic-toml/tests/datetime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/basic-toml/tests/datetime.rs')
-rw-r--r--vendor/basic-toml/tests/datetime.rs142
1 files changed, 142 insertions, 0 deletions
diff --git a/vendor/basic-toml/tests/datetime.rs b/vendor/basic-toml/tests/datetime.rs
new file mode 100644
index 000000000..0672a3ba7
--- /dev/null
+++ b/vendor/basic-toml/tests/datetime.rs
@@ -0,0 +1,142 @@
+use serde_json::Value;
+
+macro_rules! bad {
+ ($toml:expr, $msg:expr) => {
+ match basic_toml::from_str::<Value>($toml) {
+ Ok(s) => panic!("parsed to: {:#?}", s),
+ Err(e) => assert_eq!(e.to_string(), $msg),
+ }
+ };
+}
+
+#[test]
+fn times() {
+ fn multi_bad(s: &str, msg: &str) {
+ bad!(s, msg);
+ bad!(&s.replace('T', " "), msg);
+ bad!(&s.replace('T', "t"), msg);
+ bad!(&s.replace('Z', "z"), msg);
+ }
+
+ multi_bad(
+ "foo = 1997-09-09T09:09:09Z",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09+09:09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09-09:09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad("foo = 1997-09-09", "invalid number at line 1 column 7");
+ bad!("foo = 1997-09-09 ", "invalid number at line 1 column 7");
+ bad!(
+ "foo = 1997-09-09 # comment",
+ "invalid number at line 1 column 7"
+ );
+ multi_bad("foo = 09:09:09", "invalid number at line 1 column 8");
+ multi_bad(
+ "foo = 1997-09-09T09:09:09.09Z",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09.09+09:09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09.09-09:09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad(
+ "foo = 1997-09-09T09:09:09.09",
+ "invalid number at line 1 column 7",
+ );
+ multi_bad("foo = 09:09:09.09", "invalid number at line 1 column 8");
+}
+
+#[test]
+fn bad_times() {
+ bad!("foo = 199-09-09", "invalid number at line 1 column 7");
+ bad!("foo = 199709-09", "invalid number at line 1 column 7");
+ bad!("foo = 1997-9-09", "invalid number at line 1 column 7");
+ bad!("foo = 1997-09-9", "invalid number at line 1 column 7");
+ bad!(
+ "foo = 1997-09-0909:09:09",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = T",
+ "invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
+ );
+ bad!(
+ "foo = T.",
+ "invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
+ );
+ bad!(
+ "foo = TZ",
+ "invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+09",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+09:9",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+0909",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-09",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-09:9",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-0909",
+ "invalid number at line 1 column 7"
+ );
+
+ bad!(
+ "foo = 1997-00-09T09:09:09.09Z",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-00T09:09:09.09Z",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T30:09:09.09Z",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T12:69:09.09Z",
+ "invalid number at line 1 column 7"
+ );
+ bad!(
+ "foo = 1997-09-09T12:09:69.09Z",
+ "invalid number at line 1 column 7"
+ );
+}