diff --git a/src/strings.js b/src/strings.js index 4d98c1e2..c2ae5ef7 100644 --- a/src/strings.js +++ b/src/strings.js @@ -37,12 +37,14 @@ $.extend( $, { var props = prop.split('.'), string = null, args = arguments, + container = I18N, i; - for ( i = 0; i < props.length; i++ ) { + for ( i = 0; i < props.length-1; i++ ) { // in case not a subproperty - string = I18N[ props[ i ] ] || {}; + container = container[ props[ i ] ] || {}; } + string = container[ props[ i ] ]; if ( typeof( string ) != "string" ) { string = ""; @@ -65,7 +67,7 @@ $.extend( $, { setString: function( prop, value ) { var props = prop.split('.'), - container = $.Strings, + container = I18N, i; for ( i = 0; i < props.length - 1; i++ ) { diff --git a/test/strings.js b/test/strings.js new file mode 100644 index 00000000..61a12d93 --- /dev/null +++ b/test/strings.js @@ -0,0 +1,29 @@ +(function() { + + module("strings"); + test("getSubString", function() { + equal(OpenSeadragon.getString("Errors.Dzi"), + "Hmm, this doesn't appear to be a valid Deep Zoom Image.", + "Read sub-string"); + }); + + test("getInvalidString", function() { + equal(OpenSeadragon.getString("Greeting"), "", + "Handled unset string key"); + equal(OpenSeadragon.getString("Errors"), "", + "Handled requesting parent key"); + }); + + test("setString", function() { + OpenSeadragon.setString("Greeting", "Hello world"); + equal(OpenSeadragon.getString("Greeting"), "Hello world", + "Set a string"); + }); + + test("setSubString", function() { + OpenSeadragon.setString("CustomGreeting.Hello", "Hello world"); + equal(OpenSeadragon.getString("CustomGreeting.Hello"), "Hello world", + "Set a sub-string"); + }); + +})(); diff --git a/test/test.html b/test/test.html index ad80ea07..92344f56 100644 --- a/test/test.html +++ b/test/test.html @@ -16,6 +16,7 @@ + - \ No newline at end of file +