DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Test/Uize/Loc/FileFormats/MacStrings.js

/home/kozerus/public_html/pn/uize/site-source/js/Uize/Test/Uize/Loc/FileFormats

/*______________
|       ______  |   U I Z E    J A V A S C R I P T    F R A M E W O R K
|     /      /  |   ---------------------------------------------------
|    /    O /   |    MODULE : Uize.Test.Uize.Loc.FileFormats.MacStrings Class
|   /    / /    |
|  /    / /  /| |    ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2014-2016 UIZE
|          /___ |   LICENSE : Available under MIT License or GNU General Public License
|_______________|             http://www.uize.com/license.html
*/

/* Module Meta Data
	type: Test
	importance: 1
	codeCompleteness: 5
	docCompleteness: 100
*/

/*?
	Introduction
		The =Uize.Test.Uize.Loc.FileFormats.MacStrings= module defines a suite of unit tests for the =Uize.Loc.FileFormats.MacStrings= module.

		*DEVELOPERS:* `Chris van Rensburg`
*/

Uize.module ({
	name:'Uize.Test.Uize.Loc.FileFormats.MacStrings',
	builder:function () {
		'use strict';

		var
			/*** no strings ***/
				_stringsNoStrings = {},
				_fileNoStrings = '',

			/*** one string ***/
				_stringsOneString = {
					foo:'bar'
				},
				_fileOneString = '"foo" = "bar";',

			/*** multiple strings ***/
				_stringsMultipleStrings = {
					foo:'bar',
					baz:'qux',
					hello:'world'
				},
				_fileMultipleStrings =
					'"foo" = "bar";\n' +
					'"baz" = "qux";\n' +
					'"hello" = "world";',

			/*** special characters ***/
				_stringsSpecialCharacters = {
					'f"o\no':'bar',
					baz:'q"u\nx',
					'h"e\nllo':'w"o\nrld'
				},
				_fileSpecialCharacters =
					'"f\\"o\\no" = "bar";\n' +
					'"baz" = "q\\"u\\nx";\n' +
					'"h\\"e\\nllo" = "w\\"o\\nrld";'
		;

		return Uize.Test.resolve ({
			title:'Uize.Loc.FileFormats.MacStrings Module Test',
			test:[
				Uize.Test.requiredModulesTest ('Uize.Loc.FileFormats.MacStrings'),
				Uize.Test.staticMethodsTest ([
					['Uize.Loc.FileFormats.MacStrings.from',[
						['Parsing an empty string produces an empty strings object',
							_fileNoStrings,
							Uize.clone (_stringsNoStrings)
						],
						['Parsing a single line strings text block produces a strings object with a single string entry',
							_fileOneString,
							Uize.clone (_stringsOneString)
						],
						['Parsing a multi-line strings text block produces a strings object with multiple string entries',
							_fileMultipleStrings,
							Uize.clone (_stringsMultipleStrings)
						],
						['Test that parsing a strings text block where either the keys or values for string entries contain escaped characters is handled correctly and the escaped characters are unescaped',
							_fileSpecialCharacters,
							Uize.clone (_stringsSpecialCharacters)
						],

						/*** test support for different linebreak characters ***/
							['Test that parsing a multi-line strings text block where the carriage return character is used for line endings is handled correctly',
								[
									'"foo" = "bar";',
									'"baz" = "qux";',
									'"hello" = "world";'
								].join ('\r'),
								{
									foo:'bar',
									baz:'qux',
									hello:'world'
								}
							],
							['Test that parsing a multi-line strings text block where a combination of carriage return and linebreak characters is used for line endings is handled correctly',
								[
									'"foo" = "bar";',
									'"baz" = "qux";',
									'"hello" = "world";'
								].join ('\r\n'),
								{
									foo:'bar',
									baz:'qux',
									hello:'world'
								}
							],

						/*** test support for comments ***/
							['Test that parsing a strings text block that contains single line comments is handled correctly',
								[
									'"foo" = "bar";',
									'// this is a comment',
									'"baz" = "qux"; // this is a comment',
									'"hello" = "world";'
								].join ('\n'),
								{
									foo:'bar',
									baz:'qux',
									hello:'world'
								}
							],
							['Test that parsing a strings text block that contains multi-line comments is handled correctly',
								[
									'"foo" = "bar";',
									'/* this is a comment */',
									'"baz" = "qux"; /* this is a comment',
									'that spans multiple lines */ "hello" = "world";'
								].join ('\n'),
								{
									foo:'bar',
									baz:'qux',
									hello:'world'
								}
							]
					]],
					['Uize.Loc.FileFormats.MacStrings.to',[
						['Serializing an empty strings object produces an empty string as a result',
							Uize.clone (_stringsNoStrings),
							_fileNoStrings
						],
						['Serializing a strings object with a single string entry produces a single line string as a result',
							Uize.clone (_stringsOneString),
							_fileOneString
						],
						['Serializing a strings object with multiple string entries produces a multi-line string as a result',
							Uize.clone (_stringsMultipleStrings),
							_fileMultipleStrings
						],
						['When either the key or value for a string entry contains special characters, the special characters are escaped correctly',
							Uize.clone (_stringsSpecialCharacters),
							_fileSpecialCharacters
						]
					]]
				])
			]
		});
	}
});

//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer