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
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer