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

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

/*______________
|       ______  |   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.Strings.Util 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: 70
	docCompleteness: 100
*/

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

		*DEVELOPERS:* `Chris van Rensburg`
*/

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

		var
			/*** General Variables ***/
				_translatableLanguageStrings = {
					widget1:{
						translatableString1:'[Widget 1, Translatable String 1]',
						$nonTranslatableString1:'',
						translatableString2:'[Widget 1, Translatable String 2]',
						$nonTranslatableString2:'[Widget 1, Non-translatable String 2]'
					},
					widget2:{
						translatableString1:'[Widget 2, Translatable String 1]',
						$nonTranslatableString1:'[Widget 2, Non-translatable String 1]',
						translatableString2:'',
						$nonTranslatableString2:''
					}
				},
				_primaryLanguageStrings = {
					widget1:{
						translatableString1:'Widget 1, Translatable String 1',
						$nonTranslatableString1:'Widget 1, Non-Translatable String 1',
						translatableString2:'Widget 1, Translatable String 2',
						$nonTranslatableString2:'Widget 1, Non-translatable String 2',
						translatableString3:'Widget 1, Translatable String 3',
						$nonTranslatableString3:'Widget 1, Non-Translatable String 3'
					},
					widget2:{
						translatableString1:'Widget 2, Translatable String 1',
						$nonTranslatableString1:'Widget 2, Non-translatable String 1',
						translatableString2:'Widget 2, Translatable String 2',
						$nonTranslatableString2:'Widget 2, Non-translatable String 2',
						translatableString3:'Widget 2, Translatable String 3',
						$nonTranslatableString3:'Widget 2, Non-Translatable String 3'
					}
				}
		;

		function _isStringTranslatable (_string) {
			return _string.key.charAt (0) != '$';
		}

		return Uize.Test.resolve ({
			title:'Test for Uize.Loc.Strings.Util Module',
			test:[
				Uize.Test.requiredModulesTest ('Uize.Loc.Strings.Util'),
				Uize.Test.staticMethodsTest ([
					['Uize.Loc.Strings.Util.initNonTranslatable',[
						['When the value "never" is specified for the initNonTranslatable parameter, then the non-translatable strings for the translatable language are left as is',
							[
								Uize.clone (_translatableLanguageStrings),
								Uize.clone (_primaryLanguageStrings),
								'never',
								_isStringTranslatable
							],
							Uize.clone (_translatableLanguageStrings)
						],
						['When the value "blank" is specified for the initNonTranslatable parameter, then the values for all non-translatable strings for the translatable language are initialized to an empty string',
							[
								Uize.clone (_translatableLanguageStrings),
								Uize.clone (_primaryLanguageStrings),
								'blank',
								_isStringTranslatable
							],
							{
								widget1:{
									translatableString1:'[Widget 1, Translatable String 1]',
									$nonTranslatableString1:'',
									translatableString2:'[Widget 1, Translatable String 2]',
									$nonTranslatableString2:''
								},
								widget2:{
									translatableString1:'[Widget 2, Translatable String 1]',
									$nonTranslatableString1:'',
									translatableString2:'',
									$nonTranslatableString2:''
								}
							}
						],
						['When the value "primary" is specified for the initNonTranslatable parameter, then the value for each non-translatable string for the translatable language is initialized to the corresponding value for the string from the primary language',
							[
								Uize.clone (_translatableLanguageStrings),
								Uize.clone (_primaryLanguageStrings),
								'primary',
								_isStringTranslatable
							],
							{
								widget1:{
									translatableString1:'[Widget 1, Translatable String 1]',
									$nonTranslatableString1:'Widget 1, Non-Translatable String 1',
									translatableString2:'[Widget 1, Translatable String 2]',
									$nonTranslatableString2:'Widget 1, Non-translatable String 2'
								},
								widget2:{
									translatableString1:'[Widget 2, Translatable String 1]',
									$nonTranslatableString1:'Widget 2, Non-translatable String 1',
									translatableString2:'',
									$nonTranslatableString2:'Widget 2, Non-translatable String 2'
								}
							}
						],
						['When the value "primary-if-blank" is specified for the initNonTranslatable parameter, then the value for each blank non-translatable string for the translatable language is initialized to the corresponding value for the string from the primary language',
							[
								Uize.clone (_translatableLanguageStrings),
								Uize.clone (_primaryLanguageStrings),
								'primary-if-blank',
								_isStringTranslatable
							],
							{
								widget1:{
									translatableString1:'[Widget 1, Translatable String 1]',
									$nonTranslatableString1:'Widget 1, Non-Translatable String 1',
									translatableString2:'[Widget 1, Translatable String 2]',
									$nonTranslatableString2:'[Widget 1, Non-translatable String 2]'
								},
								widget2:{
									translatableString1:'[Widget 2, Translatable String 1]',
									$nonTranslatableString1:'[Widget 2, Non-translatable String 1]',
									translatableString2:'',
									$nonTranslatableString2:'Widget 2, Non-translatable String 2'
								}
							}
						],
						['When a falsy value is specified for the initNonTranslatable parameter, then it is defaulted to  "primary-if-blank"',
							[
								Uize.clone (_translatableLanguageStrings),
								Uize.clone (_primaryLanguageStrings),
								null,
								_isStringTranslatable
							],
							{
								widget1:{
									translatableString1:'[Widget 1, Translatable String 1]',
									$nonTranslatableString1:'Widget 1, Non-Translatable String 1',
									translatableString2:'[Widget 1, Translatable String 2]',
									$nonTranslatableString2:'[Widget 1, Non-translatable String 2]'
								},
								widget2:{
									translatableString1:'[Widget 2, Translatable String 1]',
									$nonTranslatableString1:'[Widget 2, Non-translatable String 1]',
									translatableString2:'',
									$nonTranslatableString2:'Widget 2, Non-translatable String 2'
								}
							}
						],
						['Values for non-translatable strings are only initialized if they are null, undefined, or an empty string - falsy boolean or number type values are not initialized',
							[
								{
									booleanA:false,
									booleanB:true,
									numberA:0,
									numberB:1,
									stringA:'',
									stringB:'bar'
								},
								{
									booleanA:true,
									booleanB:false,
									numberA:3,
									numberB:5,
									stringA:'foo',
									stringB:'baz'
								},
								'primary-if-blank',
								Uize.returnFalse
							],
							{
								booleanA:false,
								booleanB:true,
								numberA:0,
								numberB:1,
								stringA:'foo',
								stringB:'bar'
							}
						]
					]],
					['Uize.Loc.Strings.Util.removeEmptyStrings',[
						['All empty string values in a hierarchical strings object can be removed',
							{
								foo:'',
								bar:undefined,
								baz:{
									qux:''
								},
								nux:'nux nux nux',
								hello:{
									world:null,
									helloAgain:{
										helloAgainAgain:''
									}
								}
							},
							{
								bar:undefined,
								nux:'nux nux nux',
								hello:{
									world:null
								}
							}
						]
					]],
					['Uize.Loc.Strings.Util.pseudoLocalizeResources',[
						['All translatable string values in a hierarchical project strings object can be pseudo-localized',
							[
								{
									'folder1/file1.properties':{
										foo:'foo',
										bar:'bar',
										$baz:'baz'
									},
									'folder2/file2.properties':{
										widget1:{
											title:'Widget 1 Title',
											tooltip:'Widget 1 Tooltip',
											$url:'http://www.somewhere.com'
										},
										page:{
											widget2:{
												title:'Widget 2 Title',
												tooltip:'Widget 2 Tooltip',
												$color:'red'
											},
											widget3:{
											}
										}
									}
								},
								function (_string) {return _string.key.charAt (0) != '$'},
								function (_string) {return _string.value.toUpperCase ()}
							],
							{
								'folder1/file1.properties':{
									foo:'FOO',
									bar:'BAR',
									$baz:'baz'
								},
								'folder2/file2.properties':{
									widget1:{
										title:'WIDGET 1 TITLE',
										tooltip:'WIDGET 1 TOOLTIP',
										$url:'http://www.somewhere.com'
									},
									page:{
										widget2:{
											title:'WIDGET 2 TITLE',
											tooltip:'WIDGET 2 TOOLTIP',
											$color:'red'
										},
										widget3:{
										}
									}
								}
							}
						]
					]]
				])
			]
		});
	}
});

//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer