| Index: remoting/webapp/unittests/menu_button_unittest.js
|
| diff --git a/remoting/webapp/unittests/menu_button_unittest.js b/remoting/webapp/unittests/menu_button_unittest.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9e687a4504656bd047d10a99bd1ecb8ae209de06
|
| --- /dev/null
|
| +++ b/remoting/webapp/unittests/menu_button_unittest.js
|
| @@ -0,0 +1,78 @@
|
| +// 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';
|
| +
|
| +var menuButton = null;
|
| +var menuShown = false;
|
| +
|
| +module('MenuButton', {
|
| + setup: function() {
|
| + var fixture = document.getElementById('qunit-fixture');
|
| + fixture.innerHTML =
|
| + '<span class="menu-button" id="menu-button-container">' +
|
| + '<button class="menu-button-activator">Click me</button>' +
|
| + '<ul>' +
|
| + '<li id="menu-option-1">Option 1</li>' +
|
| + '</ul>' +
|
| + '</span>';
|
| + menuButton = new remoting.MenuButton(
|
| + document.getElementById('menu-button-container'),
|
| + function() { menuShown = true; });
|
| + menuShown = false;
|
| + },
|
| + teardown: function() {
|
| + }
|
| +});
|
| +
|
| +test('should display on click', function() {
|
| + var menu = menuButton.menu();
|
| + ok(menu.offsetWidth == 0 && menu.offsetHeight == 0);
|
| + menuButton.button().click();
|
| + ok(menu.offsetWidth != 0 && menu.offsetHeight != 0);
|
| +});
|
| +
|
| +test('should dismiss when <body> is clicked', function() {
|
| + var menu = menuButton.menu();
|
| + menuButton.button().click();
|
| + document.body.click();
|
| + ok(menu.offsetWidth == 0 && menu.offsetHeight == 0);
|
| +});
|
| +
|
| +test('should dismiss when button is clicked', function() {
|
| + var menu = menuButton.menu();
|
| + menuButton.button().click();
|
| + menuButton.button().click();
|
| + ok(menu.offsetWidth == 0 && menu.offsetHeight == 0);
|
| +});
|
| +
|
| +test('should dismiss when menu item is clicked', function() {
|
| + var menu = menuButton.menu();
|
| + menuButton.button().click();
|
| + var element = document.getElementById('menu-option-1');
|
| + element.click();
|
| + ok(menu.offsetWidth == 0 && menu.offsetHeight == 0);
|
| +});
|
| +
|
| +test('should invoke callback', function() {
|
| + ok(!menuShown);
|
| + menuButton.button().click();
|
| + ok(menuShown);
|
| +});
|
| +
|
| +test('select method should set/unset background image', function() {
|
| + var element = document.getElementById('menu-option-1');
|
| + var style = window.getComputedStyle(element);
|
| + ok(style.backgroundImage == 'none');
|
| + remoting.MenuButton.select(element, true);
|
| + style = window.getComputedStyle(element);
|
| + ok(style.backgroundImage != 'none');
|
| + remoting.MenuButton.select(element, false);
|
| + style = window.getComputedStyle(element);
|
| + ok(style.backgroundImage == 'none');
|
| +});
|
| +
|
| +}());
|
|
|