diff options
Diffstat (limited to 'components/gfx/tests/text_util.rs')
-rw-r--r-- | components/gfx/tests/text_util.rs | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/components/gfx/tests/text_util.rs b/components/gfx/tests/text_util.rs new file mode 100644 index 00000000000..7729a6f78a7 --- /dev/null +++ b/components/gfx/tests/text_util.rs @@ -0,0 +1,162 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +extern crate gfx; + +use gfx::text::util::{CompressionMode, transform_text}; + +#[test] +fn test_transform_compress_none() { + let test_strs = [ + " foo bar", + "foo bar ", + "foo\n bar", + "foo \nbar", + " foo bar \nbaz", + "foo bar baz", + "foobarbaz\n\n", + ]; + + let mode = CompressionMode::CompressNone; + for &test in test_strs.iter() { + let mut trimmed_str = String::new(); + transform_text(test, mode, true, &mut trimmed_str); + assert_eq!(trimmed_str, test) + } +} + +#[test] +fn test_transform_discard_newline() { + let test_strs = [ + (" foo bar", + " foo bar"), + + ("foo bar ", + "foo bar "), + + ("foo\n bar", + "foo bar"), + + ("foo \nbar", + "foo bar"), + + (" foo bar \nbaz", + " foo bar baz"), + + ("foo bar baz", + "foo bar baz"), + + ("foobarbaz\n\n", + "foobarbaz"), + ]; + + let mode = CompressionMode::DiscardNewline; + for &(test, oracle) in test_strs.iter() { + let mut trimmed_str = String::new(); + transform_text(test, mode, true, &mut trimmed_str); + assert_eq!(trimmed_str, oracle) + } +} + +#[test] +fn test_transform_compress_whitespace() { + let test_strs = [ + (" foo bar", + "foo bar"), + + ("foo bar ", + "foo bar "), + + ("foo\n bar", + "foo\n bar"), + + ("foo \nbar", + "foo \nbar"), + + (" foo bar \nbaz", + "foo bar \nbaz"), + + ("foo bar baz", + "foo bar baz"), + + ("foobarbaz\n\n", + "foobarbaz\n\n"), + ]; + + let mode = CompressionMode::CompressWhitespace; + for &(test, oracle) in test_strs.iter() { + let mut trimmed_str = String::new(); + transform_text(test, mode, true, &mut trimmed_str); + assert_eq!(&*trimmed_str, oracle) + } +} + +#[test] +fn test_transform_compress_whitespace_newline() { + let test_strs = vec![ + (" foo bar", + "foo bar"), + + ("foo bar ", + "foo bar "), + + ("foo\n bar", + "foo bar"), + + ("foo \nbar", + "foo bar"), + + (" foo bar \nbaz", + "foo bar baz"), + + ("foo bar baz", + "foo bar baz"), + + ("foobarbaz\n\n", + "foobarbaz "), + ]; + + let mode = CompressionMode::CompressWhitespaceNewline; + for &(test, oracle) in test_strs.iter() { + let mut trimmed_str = String::new(); + transform_text(test, mode, true, &mut trimmed_str); + assert_eq!(&*trimmed_str, oracle) + } +} + +#[test] +fn test_transform_compress_whitespace_newline_no_incoming() { + let test_strs = [ + (" foo bar", + " foo bar"), + + ("\nfoo bar", + " foo bar"), + + ("foo bar ", + "foo bar "), + + ("foo\n bar", + "foo bar"), + + ("foo \nbar", + "foo bar"), + + (" foo bar \nbaz", + " foo bar baz"), + + ("foo bar baz", + "foo bar baz"), + + ("foobarbaz\n\n", + "foobarbaz "), + ]; + + let mode = CompressionMode::CompressWhitespaceNewline; + for &(test, oracle) in test_strs.iter() { + let mut trimmed_str = String::new(); + transform_text(test, mode, false, &mut trimmed_str); + assert_eq!(trimmed_str, oracle) + } +} |