UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

146 lines (128 loc) 4.96 kB
<!DOCTYPE html> <!-- Author: agrieve@google.com (Andrew Grieve) --> <html> <!-- Copyright 2009 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.tweak.Registry</title> <script src="../base.js"></script> <script> goog.require('goog.testing.jsunit'); goog.require('goog.tweak'); goog.require('goog.tweak.Registry'); goog.require('goog.tweak.testhelpers'); </script> </head> <body> <script> var registry; function setUp() { createRegistryEntries(''); registry = goog.tweak.getRegistry(); } function tearDown() { goog.tweak.registry_ = null; } function testGetBaseEntry() { // Initial values assertEquals('wrong bool1 object', boolEntry, registry.getBooleanSetting('Bool')); assertEquals('wrong string object', strEntry, registry.getStringSetting('Str')); assertEquals('wrong numeric object', numEntry, registry.getNumericSetting('Num')); assertEquals('wrong button object', buttonEntry, registry.getEntry('Button')); assertEquals('wrong button object', boolGroup, registry.getEntry('BoolGroup')); } function testInitializeFromQueryParams() { var testCase = 0; function assertQuery(queryStr, boolValue, enumValue, strValue, subBoolValue, subBoolValue2) { createRegistryEntries(queryStr); assertEquals('Wrong bool value for query: ' + queryStr, boolValue, boolEntry.getValue()); assertEquals('Wrong enum value for query: ' + queryStr, enumValue, strEnumEntry.getValue()); assertEquals('Wrong str value for query: ' + queryStr, strValue, strEntry.getValue()); assertEquals('Wrong BoolOne value for query: ' + queryStr, subBoolValue, boolOneEntry.getValue()); assertEquals('Wrong BoolTwo value for query: ' + queryStr, subBoolValue2, boolTwoEntry.getValue()); } assertQuery('?dummy=1&bool=&enum=&s=', false, '', '', false, true); assertQuery('?bool=0&enum=A&s=a', false, 'A', 'a', false, true); assertQuery('?bool=1&enum=A', true, 'A', '', false, true); assertQuery('?bool=true&enum=B&s=as+df', true, 'B', 'as df', false, true); assertQuery('?enum=C', false, 'C', '', false, true); assertQuery('?enum=C&boolgroup=-booltwo', false, 'C', '', false, false); assertQuery('?enum=C&boolgroup=b1,-booltwo', false, 'C', '', true, false); assertQuery('?enum=C&boolgroup=b1', false, 'C', '', true, true); assertQuery('?s=a+b%20c%26', false, 'A', 'a b c&', false, true); } function testMakeUrlQuery() { assertEquals('All values are default.', '', registry.makeUrlQuery('')); assertEquals('All values are default - with existing params.', '?super=pudu', registry.makeUrlQuery('?super=pudu')); boolEntry.setValue(true); numEnumEntry.setValue(2); strEntry.setValue('f o&o'); assertEquals('Wrong query string 1.', '?bool=1&enum2=2&s=f+o%26o', registry.makeUrlQuery('?bool=1')); assertEquals('Wrong query string 1 - with existing params.', '?super=pudu&bool=1&enum2=2&s=f+o%26o', registry.makeUrlQuery('?bool=0&s=g&super=pudu')); boolOneEntry.setValue(true); assertEquals('Wrong query string 2.', '?bool=1&boolgroup=B1&enum2=2&s=f+o%26o', registry.makeUrlQuery('')); boolTwoEntry.setValue(false); assertEquals('Wrong query string 3.', '?bool=1&boolgroup=B1,-booltwo&enum2=2&s=f+o%26o', registry.makeUrlQuery('')); } function testOverrideDefaultValue_calledBefore() { registry.overrideDefaultValue('b', false); registry.overrideDefaultValue('b', true); goog.tweak.registerBoolean('b', 'b desc'); var bEntry = registry.getEntry('b'); assertTrue('Default value should be true.', bEntry.getDefaultValue()); assertTrue('Value should be true.', bEntry.getValue()); } function testOverrideDefaultValue_calledAfter() { var exception = assertThrows('Should assert.', function() { registry.overrideDefaultValue('Bool2', false); }); assertTrue('Wrong exception', exception instanceof goog.asserts.AssertionError); } function testCompilerOverrideDefaultValue() { createRegistryEntries('', { 'b': true }); registry = goog.tweak.getRegistry(); goog.tweak.registerBoolean('b', 'b desc'); var bEntry = registry.getEntry('b'); assertTrue('Default value should be true.', bEntry.getDefaultValue()); assertTrue('Value should be true.', bEntry.getValue()); } function testCompilerAndJsOverrideDefaultValue() { createRegistryEntries('', { 'b': false }); registry = goog.tweak.getRegistry(); registry.overrideDefaultValue('b', true); goog.tweak.registerBoolean('b', 'b desc', true); var bEntry = registry.getEntry('b'); assertFalse('Default value should be false.', bEntry.getDefaultValue()); assertFalse('Value should be false.', bEntry.getValue()); } </script> </body> </html>