Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(645)

Unified Diff: remoting/webapp/unittests/base_unittest.js

Issue 984203003: Move mocks and unittest JS files to sit alongside production code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/webapp/unittests/apps_v2_migration_unittest.js ('k') | remoting/webapp/unittests/chrome_mocks.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/unittests/base_unittest.js
diff --git a/remoting/webapp/unittests/base_unittest.js b/remoting/webapp/unittests/base_unittest.js
deleted file mode 100644
index a5a6a6f6049ac6022f3d6a137a3a06db5c8ad1e0..0000000000000000000000000000000000000000
--- a/remoting/webapp/unittests/base_unittest.js
+++ /dev/null
@@ -1,327 +0,0 @@
-// Copyright 2014 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';
-
-module('base');
-
-test('mix(dest, src) should copy properties from |src| to |dest|',
- function() {
- var src = { a: 'a', b: 'b'};
- var dest = { c: 'c'};
-
- base.mix(dest, src);
- deepEqual(dest, {a: 'a', b: 'b', c: 'c'});
-});
-
-test('mix(dest, src) should assert if properties are overwritten',
- function() {
- var src = { a: 'a', b: 'b'};
- var dest = { a: 'a'};
-
- sinon.stub(base.debug, 'assert');
-
- try {
- base.mix(dest, src);
- } catch (e) {
- } finally {
- sinon.assert.called(base.debug.assert);
- $testStub(base.debug.assert).restore();
- }
-});
-
-test('values(obj) should return an array containing the values of |obj|',
- function() {
- var output = base.values({ a: 'a', b: 'b'});
-
- notEqual(output.indexOf('a'), -1, '"a" should be in the output');
- notEqual(output.indexOf('b'), -1, '"b" should be in the output');
-});
-
-test('deepCopy(obj) should return null on NaN and undefined',
- function() {
- QUnit.equal(base.deepCopy(NaN), null);
- QUnit.equal(base.deepCopy(undefined), null);
-});
-
-test('deepCopy(obj) should copy primitive types recursively',
- function() {
- QUnit.equal(base.deepCopy(1), 1);
- QUnit.equal(base.deepCopy('hello'), 'hello');
- QUnit.equal(base.deepCopy(false), false);
- QUnit.equal(base.deepCopy(null), null);
- QUnit.deepEqual(base.deepCopy([1, 2]), [1, 2]);
- QUnit.deepEqual(base.deepCopy({'key': 'value'}), {'key': 'value'});
- QUnit.deepEqual(base.deepCopy(
- {'key': {'key_nested': 'value_nested'}}),
- {'key': {'key_nested': 'value_nested'}}
- );
- QUnit.deepEqual(base.deepCopy([1, [2, [3]]]), [1, [2, [3]]]);
-});
-
-test('modify the original after deepCopy(obj) should not affect the copy',
- function() {
- var original = [1, 2, 3, 4];
- var copy = base.deepCopy(original);
- original[2] = 1000;
- QUnit.deepEqual(copy, [1, 2, 3, 4]);
-});
-
-test('dispose(obj) should invoke the dispose method on |obj|',
- function() {
- /**
- * @constructor
- * @implements {base.Disposable}
- */
- base.MockDisposable = function() {};
- base.MockDisposable.prototype.dispose = sinon.spy();
-
- var obj = new base.MockDisposable();
- base.dispose(obj);
- sinon.assert.called(obj.dispose);
-});
-
-test('dispose(obj) should not crash if |obj| is null',
- function() {
- expect(0);
- base.dispose(null);
-});
-
-test('urljoin(url, opt_param) should return url if |opt_param| is missing',
- function() {
- QUnit.equal(
- base.urlJoin('http://www.chromium.org'), 'http://www.chromium.org');
-});
-
-test('urljoin(url, opt_param) should urlencode |opt_param|',
- function() {
- var result = base.urlJoin('http://www.chromium.org', {
- a: 'a',
- foo: 'foo',
- escapist: ':/?#[]@$&+,;='
- });
- QUnit.equal(
- result,
- 'http://www.chromium.org?a=a&foo=foo' +
- '&escapist=%3A%2F%3F%23%5B%5D%40%24%26%2B%2C%3B%3D');
-});
-
-test('escapeHTML(str) should escape special characters', function() {
- QUnit.equal(
- base.escapeHTML('<script>alert("hello")</script>'),
- '&lt;script&gt;alert("hello")&lt;/script&gt;');
-});
-
-QUnit.asyncTest('Promise.sleep(delay) should fulfill the promise after |delay|',
- /**
- * 'this' is not defined for jscompile, so it can't figure out the type of
- * this.clock.
- * @suppress {reportUnknownTypes|checkVars|checkTypes}
- */
- function() {
- var isCalled = false;
- var clock = /** @type {QUnit.Clock} */ (this.clock);
-
- base.Promise.sleep(100).then(function(){
- isCalled = true;
- ok(true, 'Promise.sleep() is fulfilled after delay.');
- QUnit.start();
- });
-
- // Tick the clock for 2 seconds and check if the promise is fulfilled.
- clock.tick(2);
-
- // Promise fulfillment always occur on a new stack. Therefore, we will run
- // the verification in a requestAnimationFrame.
- window.requestAnimationFrame(function(){
- ok(!isCalled, 'Promise.sleep() should not be fulfilled prematurely.');
- clock.tick(101);
- });
-});
-
-QUnit.asyncTest('Promise.negate should fulfill iff the promise does not.',
- function() {
-
- base.Promise.negate(Promise.reject()).then(
- QUnit.ok.bind(null, true),
- /** @type {Function} */ (QUnit.ok.bind(null, false)));
- base.Promise.negate(Promise.resolve()).then(
- QUnit.ok.bind(null, false),
- /** @type {Function} */ (QUnit.ok.bind(null, true)));
- window.requestAnimationFrame(function(){
- QUnit.start();
- });
-});
-
-module('base.Deferred');
-
-QUnit.asyncTest('resolve() should fulfill the underlying promise.', function() {
- /** @returns {Promise} */
- function async() {
- var deferred = new base.Deferred();
- deferred.resolve('bar');
- return deferred.promise();
- }
-
- async().then(
- /** @param {string} value */
- function(value){
- QUnit.equal(value, 'bar');
- QUnit.start();
- }, function() {
- QUnit.ok(false, 'The reject handler should not be invoked.');
- });
-});
-
-QUnit.asyncTest('reject() should fail the underlying promise.', function() {
- /** @returns {Promise} */
- function async() {
- var deferred = new base.Deferred();
- deferred.reject('bar');
- return deferred.promise();
- }
-
- async().then(function(){
- QUnit.ok(false, 'The then handler should not be invoked.');
- }, function(value) {
- QUnit.equal(value, 'bar');
- QUnit.start();
- });
-});
-
-
-/** @type {base.EventSourceImpl} */
-var source = null;
-var listener = null;
-
-module('base.EventSource', {
- setup: function() {
- source = new base.EventSourceImpl();
- source.defineEvents(['foo', 'bar']);
- listener = sinon.spy();
- source.addEventListener('foo', listener);
- },
- teardown: function() {
- source = null;
- listener = null;
- }
-});
-
-test('raiseEvent() should invoke the listener', function() {
- source.raiseEvent('foo');
- sinon.assert.called(listener);
-});
-
-test('raiseEvent() should invoke the listener with the correct event data',
- function() {
- var data = {
- field: 'foo'
- };
- source.raiseEvent('foo', data);
- sinon.assert.calledWith(listener, data);
-});
-
-test(
- 'raiseEvent() should not invoke listeners that are added during raiseEvent',
- function() {
- source.addEventListener('foo', function() {
- source.addEventListener('foo', function() {
- ok(false);
- });
- ok(true);
- });
- source.raiseEvent('foo');
-});
-
-test('raiseEvent() should not invoke listeners of a different event',
- function() {
- source.raiseEvent('bar');
- sinon.assert.notCalled(listener);
-});
-
-test('raiseEvent() should assert when undeclared events are raised',
- function() {
- sinon.stub(base.debug, 'assert');
- try {
- source.raiseEvent('undefined');
- } catch (e) {
- } finally {
- sinon.assert.called(base.debug.assert);
- $testStub(base.debug.assert).restore();
- }
-});
-
-test(
- 'removeEventListener() should not invoke the listener in subsequent ' +
- 'calls to |raiseEvent|',
- function() {
- source.raiseEvent('foo');
- sinon.assert.calledOnce(listener);
-
- source.removeEventListener('foo', listener);
- source.raiseEvent('foo');
- sinon.assert.calledOnce(listener);
-});
-
-test('removeEventListener() should work even if the listener ' +
- 'is removed during |raiseEvent|',
- function() {
- var sink = {};
- sink.listener = sinon.spy(function() {
- source.removeEventListener('foo', sink.listener);
- });
-
- source.addEventListener('foo', sink.listener);
- source.raiseEvent('foo');
- sinon.assert.calledOnce(sink.listener);
-
- source.raiseEvent('foo');
- sinon.assert.calledOnce(sink.listener);
-});
-
-test('encodeUtf8() can encode UTF8 strings', function() {
- /** @type {function(ArrayBuffer):Array} */
- function toJsArray(arrayBuffer) {
- var result = [];
- var array = new Uint8Array(arrayBuffer);
- for (var i = 0; i < array.length; ++i) {
- result.push(array[i]);
- }
- return result;
- }
-
- // ASCII.
- QUnit.deepEqual(toJsArray(base.encodeUtf8("ABC")), [0x41, 0x42, 0x43]);
-
- // Some arbitrary characters from the basic Unicode plane.
- QUnit.deepEqual(
- toJsArray(base.encodeUtf8("挂Ѓф")),
- [/* 挂 */ 0xE6, 0x8C, 0x82, /* Ѓ */ 0xD0, 0x83, /* ф */ 0xD1, 0x84]);
-
- // Unicode surrogate pair for U+1F603.
- QUnit.deepEqual(toJsArray(base.encodeUtf8("😃")),
- [0xF0, 0x9F, 0x98, 0x83]);
-});
-
-test('decodeUtf8() can decode UTF8 strings', function() {
- // ASCII.
- QUnit.equal(base.decodeUtf8(new Uint8Array([0x41, 0x42, 0x43]).buffer),
- "ABC");
-
- // Some arbitrary characters from the basic Unicode plane.
- QUnit.equal(
- base.decodeUtf8(
- new Uint8Array([/* 挂 */ 0xE6, 0x8C, 0x82,
- /* Ѓ */ 0xD0, 0x83,
- /* ф */ 0xD1, 0x84]).buffer),
- "挂Ѓф");
-
- // Unicode surrogate pair for U+1F603.
- QUnit.equal(base.decodeUtf8(new Uint8Array([0xF0, 0x9F, 0x98, 0x83]).buffer),
- "😃");
-});
-
-})();
« no previous file with comments | « remoting/webapp/unittests/apps_v2_migration_unittest.js ('k') | remoting/webapp/unittests/chrome_mocks.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698