From eaa0c17220dc8ea1f5ed0b6bdb71ecbe32305404 Mon Sep 17 00:00:00 2001 From: Garrett Berg Date: Sun, 13 Aug 2017 16:15:15 -0600 Subject: add pretty_string_literal to be able to disable literal strings --- tests/pretty.rs | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/pretty.rs b/tests/pretty.rs index 3a9777c..ce906d9 100644 --- a/tests/pretty.rs +++ b/tests/pretty.rs @@ -198,7 +198,7 @@ text = """ this is the first line. This has a ''' in it and \"\"\" cuz it's tricky yo Also ' and \" because why not -this is the third line +this is the fourth line """ "##; @@ -260,3 +260,45 @@ fn table_array() { println!("\nRESULT:\n{}", result); assert_eq!(toml, &result); } + +// FIXME: add the `glass` line to this. Unfortunately there seems to +// be an issue with the deserialization module that treats the first \n +// as a real newline in that case (not cool) +const PRETTY_TRICKY_NON_LITERAL: &'static str = r##"[example] +f = "\f" +plain = """ +This has a couple of lines +Because it likes to. +""" +r = "\r" +r_newline = """ +\r +""" +single = "this is a single line but has '' cuz it's tricky" +single_tricky = "single line with ''' in it" +tabs = """ +this is pretty standard +\texcept for some \ttabs right here +""" +text = """ +this is the first line. +This has a ''' in it and \"\"\" cuz it's tricky yo +Also ' and \" because why not +this is the fourth line +""" +"##; + +#[test] +fn pretty_tricky_non_literal() { + let toml = PRETTY_TRICKY_NON_LITERAL; + let value: toml::Value = toml::from_str(toml).unwrap(); + let mut result = String::with_capacity(128); + { + let mut serializer = toml::Serializer::pretty(&mut result); + serializer.pretty_string_literal(false); + value.serialize(&mut serializer).unwrap(); + } + println!("EXPECTED:\n{}", toml); + println!("\nRESULT:\n{}", result); + assert_eq!(toml, &result); +} -- cgit v1.2.3