/*______________ | ______ | 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.Parse.Po.Value Class | / / / | | / / / /| | ONLINE : http://uize.com | /____/ /__/_| | COPYRIGHT : (c)2014-2016 UIZE | /___ | LICENSE : Available under MIT License or GNU General Public License |_______________| http://uize.com/license.html */ /* Module Meta Data type: Test importance: 1 codeCompleteness: 100 docCompleteness: 100 */ /*? Introduction The =Uize.Test.Uize.Parse.Po.Value= module defines a suite of unit tests for the =Uize.Parse.Po.Value= module. *DEVELOPERS:* `Chris van Rensburg` */ Uize.module ({ name:'Uize.Test.Uize.Parse.Po.Value', superclass:'Uize.Test.ParserTest', builder:function (_superclass) { 'use strict'; return _superclass.subclass ({ staticProperties:{parserClass:'Uize.Parse.Po.Value'}, set:{ title:'Test for Uize.Parse.Po.Value Module', test:[ Uize.Test.requiredModulesTest ('Uize.Parse.Po.Value'), { title:'A value can be parsed', test:[ Uize.Test.ParserTest.parserTest ( 'A value can be specified as a C-style string literal', ['"foo"'], { value:'foo', isValid:true } ), Uize.Test.ParserTest.parserTest ( 'A value can be specified as multiple consecutive C-style string literals, separated by optional whitespace, which are treated as multiple parts of the same value and are concatenated together', ['"foo" " bar"" baz " \n\n\n"qux"\n\n\n '], { value:'foo bar baz qux', isValid:true } ), Uize.Test.ParserTest.parserTest ( 'A value must start with a quote character', ['\n"foo"'], { value:'', isValid:false } ), Uize.Test.ParserTest.parserTest ( 'A value does not consume the trailing whitespace after the last part', ['"foo"\n" bar"\n" baz"\n\n\n \t\t\t \r'], { value:'foo bar baz', isValid:true, length:19 } ) ] }, { title:'A value can be serialized', test:[ Uize.Test.ParserTest.serializerTest ( 'A value is serialized as a C-style string literal', { value:'foo', isValid:true }, '"foo"' ), Uize.Test.ParserTest.serializerTest ( 'Special characters inside a value are escaped with a backslash', { value:'foo "bar" \n\r baz', isValid:true }, '"foo \\"bar\\" \\n\\r baz"' ) ] } ] } }); } });