| Index: remoting/webapp/crd/js/butter_bar_unittest.js
|
| diff --git a/remoting/webapp/crd/js/butter_bar_unittest.js b/remoting/webapp/crd/js/butter_bar_unittest.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9eb9b004e02877dd3ce986d9d7054e168c7ae679
|
| --- /dev/null
|
| +++ b/remoting/webapp/crd/js/butter_bar_unittest.js
|
| @@ -0,0 +1,145 @@
|
| +// 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';
|
| +
|
| +QUnit.module('ButterBar', {
|
| + beforeEach: function() {
|
| + var fixture = document.getElementById('qunit-fixture');
|
| + fixture.innerHTML =
|
| + '<div id="butter-bar" hidden>' +
|
| + ' <p>' +
|
| + ' <span id="butter-bar-message"></span>' +
|
| + ' <a id="butter-bar-dismiss" href="#" tabindex="0">' +
|
| + ' <img src="icon_cross.webp" class="close-icon">' +
|
| + ' </a>' +
|
| + ' </p>' +
|
| + '</div>';
|
| + this.butterBar = new remoting.ButterBar();
|
| + chrome.storage = {
|
| + sync: {
|
| + get: sinon.stub(),
|
| + set: sinon.stub(),
|
| + }
|
| + };
|
| + },
|
| + afterEach: function() {
|
| + }
|
| +});
|
| +
|
| +QUnit.test('should stay hidden if index==-1', function(assert) {
|
| + this.butterBar.currentMessage_ = -1;
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == true);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +QUnit.test('should be shown if index>=0 for the first time', function(assert) {
|
| + this.butterBar.currentMessage_ = 0;
|
| + chrome.storage.sync.get.callsArgWith(1, {});
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == false);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +QUnit.test('should update storage when shown', function(assert) {
|
| + this.butterBar.currentMessage_ = 0;
|
| + var clock = sinon.useFakeTimers(123);
|
| + chrome.storage.sync.get.callsArgWith(1, {});
|
| + return this.butterBar.init().then(() => {
|
| + assert.deepEqual(chrome.storage.sync.set.firstCall.args,
|
| + [{
|
| + "message-state": {
|
| + "hidden": false,
|
| + "index": 0,
|
| + "timestamp": 123,
|
| + }
|
| + }]);
|
| + });
|
| +});
|
| +
|
| +QUnit.test(
|
| + 'should be shown if the timeout has not elapsed and it has not been ' +
|
| + 'dismissed',
|
| + function(assert) {
|
| + this.butterBar.currentMessage_ = 0;
|
| + chrome.storage.sync.get.callsArgWith(1, {
|
| + "message-state": {
|
| + "hidden": false,
|
| + "index": 0,
|
| + "timestamp": 0,
|
| + }
|
| + });
|
| + var clock = sinon.useFakeTimers(remoting.ButterBar.kTimeout_);
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == false);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +QUnit.test('should stay hidden if the timeout has elapsed', function(assert) {
|
| + this.butterBar.currentMessage_ = 0;
|
| + chrome.storage.sync.get.callsArgWith(1, {
|
| + "message-state": {
|
| + "hidden": false,
|
| + "index": 0,
|
| + "timestamp": 0,
|
| + }
|
| + });
|
| + var clock = sinon.useFakeTimers(remoting.ButterBar.kTimeout_+ 1);
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == true);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +
|
| +QUnit.test('should stay hidden if it was previously dismissed',
|
| + function(assert) {
|
| + this.butterBar.currentMessage_ = 0;
|
| + chrome.storage.sync.get.callsArgWith(1, {
|
| + "message-state": {
|
| + "hidden": true,
|
| + "index": 0,
|
| + "timestamp": 0,
|
| + }
|
| + });
|
| + var clock = sinon.useFakeTimers(0);
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == true);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +
|
| +QUnit.test('should be shown if the index has increased', function(assert) {
|
| + this.butterBar.currentMessage_ = 1;
|
| + chrome.storage.sync.get.callsArgWith(1, {
|
| + "message-state": {
|
| + "hidden": true,
|
| + "index": 0,
|
| + "timestamp": 0,
|
| + }
|
| + });
|
| + var clock = sinon.useFakeTimers(remoting.ButterBar.kTimeout_ + 1);
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == false);
|
| + assert.ok(this.butterBar.dismiss_.hidden == false);
|
| + });
|
| +});
|
| +
|
| +QUnit.test('should not be dismissable for the final message', function(assert) {
|
| + this.butterBar.currentMessage_ = 3;
|
| + chrome.storage.sync.get.callsArgWith(1, {});
|
| + return this.butterBar.init().then(() => {
|
| + assert.ok(this.butterBar.root_.hidden == false);
|
| + assert.ok(this.butterBar.dismiss_.hidden == true);
|
| + });
|
| +});
|
| +
|
| +}());
|
|
|