Chromium Code Reviews| Index: remoting/webapp/crd/js/typecheck_unittest.js |
| diff --git a/remoting/webapp/crd/js/typecheck_unittest.js b/remoting/webapp/crd/js/typecheck_unittest.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6f12224060e1f2a832f8c4c1ce7fbcf0662756bb |
| --- /dev/null |
| +++ b/remoting/webapp/crd/js/typecheck_unittest.js |
| @@ -0,0 +1,240 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +(function() { |
| + |
| +'use strict'; |
|
garykac
2015/03/18 17:28:37
Move to global scope.
John Williams
2015/03/18 20:20:19
Since there's disagreement, I'm going to leave it
|
| + |
| +var anArray = ['an array']; |
| +var aBoolean = false; |
| +var aNumber = 42; |
| +var anObject = {name: 'my object'}; |
| +var aString = 'woo'; |
| + |
| +var anotherArray = ['another array']; |
| +var anotherBoolean = true; |
| +var anotherNumber = -42; |
| +var anotherObject = {name: 'a bad object'}; |
| +var anotherString = 'boo!'; |
| + |
| +var testObj = { |
| + anArray: anArray, |
| + aBoolean: aBoolean, |
| + aNumber: aNumber, |
| + anObject: anObject, |
| + aString: aString, |
| + aNull: null, |
| + anUndefined: undefined |
| +}; |
| + |
| +QUnit.module('typecheck'); |
| + |
| +QUnit.test('base.assertArray', function() { |
| + QUnit.strictEqual(base.assertArray(anArray), anArray); |
| + QUnit.throws(base.assertArray.bind(null, aBoolean), Error); |
| + QUnit.throws(base.assertArray.bind(null, aNumber), Error); |
| + QUnit.throws(base.assertArray.bind(null, anObject), Error); |
| + QUnit.throws(base.assertArray.bind(null, aString), Error); |
| + QUnit.throws(base.assertArray.bind(null, null), Error); |
| + QUnit.throws(base.assertArray.bind(null, undefined), Error); |
| +}); |
| + |
| +QUnit.test('base.assertBoolean', function() { |
| + QUnit.strictEqual(base.assertBoolean(aBoolean), aBoolean); |
| + QUnit.throws(base.assertNumber.bind(null, anArray), Error); |
| + QUnit.throws(base.assertBoolean.bind(null, aNumber), Error); |
| + QUnit.throws(base.assertBoolean.bind(null, anObject), Error); |
| + QUnit.throws(base.assertBoolean.bind(null, aString), Error); |
| + QUnit.throws(base.assertBoolean.bind(null, null), Error); |
| + QUnit.throws(base.assertBoolean.bind(null, undefined), Error); |
| +}); |
| + |
| +QUnit.test('base.assertNumber', function() { |
| + QUnit.strictEqual(base.assertNumber(aNumber), aNumber); |
| + QUnit.throws(base.assertNumber.bind(null, anArray), Error); |
| + QUnit.throws(base.assertNumber.bind(null, aBoolean), Error); |
| + QUnit.throws(base.assertNumber.bind(null, anObject), Error); |
| + QUnit.throws(base.assertNumber.bind(null, aString), Error); |
| + QUnit.throws(base.assertNumber.bind(null, null), Error); |
| + QUnit.throws(base.assertNumber.bind(null, undefined), Error); |
| +}); |
| + |
| +QUnit.test('base.assertObject', function() { |
| + QUnit.strictEqual(base.assertObject(anObject), anObject); |
| + QUnit.throws(base.assertObject.bind(null, anArray), Error); |
| + QUnit.throws(base.assertObject.bind(null, aBoolean), Error); |
| + QUnit.throws(base.assertObject.bind(null, aNumber), Error); |
| + QUnit.throws(base.assertObject.bind(null, aString), Error); |
| + QUnit.throws(base.assertObject.bind(null, null), Error); |
| + QUnit.throws(base.assertObject.bind(null, undefined), Error); |
| +}); |
| + |
| +QUnit.test('base.assertString', function() { |
| + QUnit.strictEqual(base.assertString(aString), aString); |
| + QUnit.throws(base.assertString.bind(null, anArray), Error); |
| + QUnit.throws(base.assertString.bind(null, aBoolean), Error); |
| + QUnit.throws(base.assertString.bind(null, aNumber), Error); |
| + QUnit.throws(base.assertString.bind(null, anObject), Error); |
| + QUnit.throws(base.assertString.bind(null, null), Error); |
| + QUnit.throws(base.assertString.bind(null, undefined), Error); |
| +}); |
| + |
| + |
| +QUnit.test('base.getArrayAttr', function() { |
| + QUnit.strictEqual(base.getArrayAttr(testObj, 'anArray'), anArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'anArray', anotherArray), |
| + anArray); |
| + |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'aBoolean'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'aNumber'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'anObject'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'aString'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'aNull'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'anUndefined'), Error); |
| + QUnit.throws(base.getArrayAttr.bind(null, testObj, 'noSuchKey'), Error); |
| + |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'aBoolean', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'aNumber', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'anObject', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'aString', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'aNull', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'anUndefined', anotherArray), anotherArray); |
| + QUnit.strictEqual( |
| + base.getArrayAttr(testObj, 'noSuchKey', anotherArray), anotherArray); |
| +}); |
| + |
| +QUnit.test('base.getBooleanAttr', function() { |
| + QUnit.strictEqual(base.getBooleanAttr(testObj, 'aBoolean'), aBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'aBoolean', anotherBoolean), aBoolean); |
| + |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'anArray'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'aNumber'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'anObject'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'aString'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'aNull'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'anUndefined'), Error); |
| + QUnit.throws(base.getBooleanAttr.bind(null, testObj, 'noSuchKey'), Error); |
| + |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'anArray', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'aNumber', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'anObject', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'aString', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'aNull', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'anUndefined', anotherBoolean), |
| + anotherBoolean); |
| + QUnit.strictEqual( |
| + base.getBooleanAttr(testObj, 'noSuchKey', anotherBoolean), |
| + anotherBoolean); |
| +}); |
| + |
| +QUnit.test('base.getNumberAttr', function() { |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'aNumber'), aNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'aNumber', anotherNumber), aNumber); |
| + |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'anArray'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'aBoolean'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'anObject'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'aString'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'aNull'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'anUndefined'), Error); |
| + QUnit.throws(base.getNumberAttr.bind(null, testObj, 'noSuchKey'), Error); |
| + |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'anArray', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'aBoolean', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'anObject', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'aString', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'aNull', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'anUndefined', anotherNumber), anotherNumber); |
| + QUnit.strictEqual( |
| + base.getNumberAttr(testObj, 'noSuchKey', anotherNumber), anotherNumber); |
| +}); |
| + |
| +QUnit.test('base.getObjectAttr', function() { |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'anObject'), anObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'anObject', anotherObject), anObject); |
| + |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'anArray'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'aBoolean'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'aNumber'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'aString'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'aNull'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'anUndefined'), Error); |
| + QUnit.throws(base.getObjectAttr.bind(null, testObj, 'noSuchKey'), Error); |
| + |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'anArray', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'aBoolean', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'aNumber', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'aString', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'aNull', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'anUndefined', anotherObject), anotherObject); |
| + QUnit.strictEqual( |
| + base.getObjectAttr(testObj, 'noSuchKey', anotherObject), anotherObject); |
| +}); |
| + |
| +QUnit.test('base.getStringAttr', function() { |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'aString'), aString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'aString', anotherString), aString); |
| + |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'anArray'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'aBoolean'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'aNumber'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'anObject'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'aNull'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'anUndefined'), Error); |
| + QUnit.throws(base.getStringAttr.bind(null, testObj, 'noSuchKey'), Error); |
| + |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'anArray', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'aBoolean', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'aNumber', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'anObject', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'aNull', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'anUndefined', anotherString), anotherString); |
| + QUnit.strictEqual( |
| + base.getStringAttr(testObj, 'noSuchKey', anotherString), anotherString); |
| +}); |
| + |
| +})(); |