fix Serializer::pretty_array(false)

This commit is contained in:
Garrett Berg 2017-07-24 09:46:24 -06:00
parent e26449614d
commit 203b4d43c2
2 changed files with 44 additions and 9 deletions

View file

@ -310,11 +310,11 @@ impl<'a> Serializer<'a> {
/// ] /// ]
/// ``` /// ```
pub fn pretty_array(&mut self, value: bool) -> &mut Self { pub fn pretty_array(&mut self, value: bool) -> &mut Self {
self.settings.array = Some(if value { self.settings.array = if value {
ArraySettings::pretty() Some(ArraySettings::pretty())
} else { } else {
ArraySettings::default() None
}); };
self self
} }

View file

@ -3,6 +3,41 @@ extern crate serde;
use serde::ser::Serialize; use serde::ser::Serialize;
const NO_PRETTY: &'static str = "\
[example]
array = [\"item 1\", \"item 2\"]
empty = []
oneline = \"this has no newlines.\"
text = \"\\nthis is the first line\\nthis is the second line\\n\"
";
#[test]
fn no_pretty() {
let toml = NO_PRETTY;
let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128);
value.serialize(&mut toml::Serializer::new(&mut result)).unwrap();
println!("EXPECTED:\n{}", toml);
println!("\nRESULT:\n{}", result);
assert_eq!(toml, &result);
}
#[test]
fn disable_pretty() {
let toml = NO_PRETTY;
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(false);
serializer.pretty_array(false);
value.serialize(&mut serializer).unwrap();
}
println!("EXPECTED:\n{}", toml);
println!("\nRESULT:\n{}", result);
assert_eq!(toml, &result);
}
const PRETTY_STD: &'static str = "\ const PRETTY_STD: &'static str = "\
[example] [example]
array = [ array = [
@ -18,7 +53,7 @@ this is the second line
"; ";
#[test] #[test]
fn test_pretty_std() { fn pretty_std() {
let toml = PRETTY_STD; let toml = PRETTY_STD;
let value: toml::Value = toml::from_str(toml).unwrap(); let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128); let mut result = String::with_capacity(128);
@ -44,7 +79,7 @@ this is the second line
"; ";
#[test] #[test]
fn test_pretty_indent_2() { fn pretty_indent_2() {
let toml = PRETTY_INDENT_2; let toml = PRETTY_INDENT_2;
let value: toml::Value = toml::from_str(toml).unwrap(); let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128); let mut result = String::with_capacity(128);
@ -70,7 +105,7 @@ text = \"\\nthis is the first line\\nthis is the second line\\n\"
#[test] #[test]
/// Test pretty indent when gotten the other way /// Test pretty indent when gotten the other way
fn test_pretty_indent_2_other() { fn pretty_indent_2_other() {
let toml = PRETTY_INDENT_2_OTHER; let toml = PRETTY_INDENT_2_OTHER;
let value: toml::Value = toml::from_str(toml).unwrap(); let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128); let mut result = String::with_capacity(128);
@ -95,7 +130,7 @@ text = \"\\nthis is the first line\\nthis is the second line\\n\"
"; ";
#[test] #[test]
/// Test pretty indent when gotten the other way /// Test pretty indent when gotten the other way
fn test_pretty_indent_array_no_comma() { fn pretty_indent_array_no_comma() {
let toml = PRETTY_ARRAY_NO_COMMA; let toml = PRETTY_ARRAY_NO_COMMA;
let value: toml::Value = toml::from_str(toml).unwrap(); let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128); let mut result = String::with_capacity(128);
@ -120,7 +155,7 @@ text = \"\\nthis is the first line\\nthis is the second line\\n\"
"; ";
#[test] #[test]
/// Test pretty indent when gotten the other way /// Test pretty indent when gotten the other way
fn test_pretty_no_string() { fn pretty_no_string() {
let toml = PRETTY_NO_STRING; let toml = PRETTY_NO_STRING;
let value: toml::Value = toml::from_str(toml).unwrap(); let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128); let mut result = String::with_capacity(128);