Index: chrome/browser/resources/shared/js/cr/ui/repeating_button_test.html |
=================================================================== |
--- chrome/browser/resources/shared/js/cr/ui/repeating_button_test.html (revision 177292) |
+++ chrome/browser/resources/shared/js/cr/ui/repeating_button_test.html (working copy) |
@@ -1,185 +0,0 @@ |
-<!DOCTYPE html> |
-<html> |
-<head> |
- <title>Repeater</title> |
- <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"> |
- </script> |
- <script src="../../cr.js"></script> |
- <script src="../ui.js"></script> |
- <script src="repeating_button.js"></script> |
- <script> |
- goog.require('goog.testing.jsunit'); |
- goog.require('goog.testing.MockClock'); |
- </script> |
-</head> |
-<body> |
- <script> |
- var mockClock; |
- var value; |
- var button; |
- var repeatDelay; |
- var repeatInterval; |
- |
- /** |
- * Prepare running the tests. |
- */ |
- function setUp() { |
- mockClock = new goog.testing.MockClock(); |
- mockClock.install(); |
- button = new cr.ui.RepeatingButton(); |
- repeatDelay = button.repeatDelay; |
- repeatInterval = button.repeatInterval; |
- button.addEventListener( |
- cr.ui.RepeatingButton.Event.BUTTON_HELD, |
- function(e) { |
- value++; |
- }); |
- } |
- |
- /** |
- * Post-test cleanup. |
- */ |
- function tearDown() { |
- mockClock.uninstall(); |
- } |
- |
- /** |
- * Simulates a mouse or touch event to the repeating button. |
- * @param {string} type The type of event. |
- */ |
- function mockEvent(type) { |
- cr.dispatchSimpleEvent(button, type); |
- } |
- |
- /** |
- * Simulates a sequence of events. |
- * @param {Array.<string>} events List of event types. |
- * @param {Array.<number>} timeIncrements List of time increments between |
- * events. |
- * @param {number} expectedValue Expected result. |
- */ |
- function mockEventSequence(events, timeIncrements, expectedValue) { |
- assertEquals(events.length, timeIncrements.length); |
- value = 0; |
- for (var i = 0; i < events.length; i++) { |
- mockEvent(events[i]); |
- mockClock.tick(timeIncrements[i]); |
- } |
- assertEquals(expectedValue, value); |
- mockClock.tick(repeatDelay); |
- assertEquals(expectedValue, value); |
- } |
- |
- /** |
- * Simulates a tap or touch and hold gesture. |
- * @param {number} time Duration of the hold. |
- * @param {number} expectedValue Expected result. |
- */ |
- function mockTouchHold(time, expectedValue) { |
- mockEventSequence(['touchstart', 'touchend'], [time, 0], expectedValue); |
- } |
- |
- /** |
- * Simulates a mouse click or mouse press and hold. |
- * @param {number} time Duration of the hold. |
- * @param {number} expectedValue Expected result. |
- */ |
- function mockMouseHold(time, expectedValue) { |
- mockEventSequence(['mousedown', 'mouseup', 'mouseclick'], |
- [time, 0, 0], |
- expectedValue); |
- } |
- |
- /** |
- * Simulates a mouse press and drag off of the button. |
- * @param {number} time1 Duration that the mouse button is pressed and the |
- * mouse is over the button. |
- * @param {number} time2 Duration that the mouse button is pressed but the |
- * mouse is outside the boundary of the button. |
- * @param {number} expectedValue Expected result. |
- */ |
- function mockMouseOut(time1, time2, expectedValue) { |
- mockEventSequence(['mousedown', 'mouseout', 'mouseup'], |
- [time1, time2, 0], |
- expectedValue); |
- } |
- |
- /** |
- * Runs a series of tests with increasing button hold time. |
- * @param {function} fn Testing function. |
- * @param {Object} opt_arg Optional additional argument for the test. |
- */ |
- function runButtonTests(fn, opt_arg) { |
- var holdTime = repeatDelay - repeatInterval / 2; |
- for (var i = 0; i < 3; i++, holdTime += repeatInterval) { |
- var args = opt_arg ? [holdTime, opt_arg, i + 1] : [holdTime, i + 1]; |
- fn.apply(this, args); |
- } |
- } |
- |
- /** |
- * Simulates a short tap on the button. |
- */ |
- function testTap() { |
- mockTouchHold(repeatDelay / 2, 1); |
- } |
- |
- /** |
- * Simulates a long press of the button. |
- */ |
- function testTouchHold() { |
- runButtonTests(mockTouchHold); |
- } |
- |
- /** |
- * Simulates a quick mouse click of the button. |
- */ |
- function testClick() { |
- mockMouseHold(repeatDelay / 2, 1); |
- } |
- |
- /** |
- * Simulates a mouse press and hold on the button. |
- */ |
- function testMousePressHold() { |
- runButtonTests(mockMouseHold); |
- } |
- |
- /** |
- * Simulates draging the mouse off of the button while pressed. |
- */ |
- function testMouseOut() { |
- runButtonTests(mockMouseOut, repeatDelay); |
- } |
- |
- /** |
- * Repeat tests with new delay and interval times. |
- */ |
- function testUpdateDelayTimes() { |
- var oldDelay = repeatDelay; |
- var oldInterval = repeatInterval; |
- repeatDelay = button.repeatDelay = 2 * repeatDelay; |
- repeatInterval = button.repeatInterval = 2 * repeatInterval; |
- testTouchHold(); |
- testMousePressHold(); |
- testMouseOut(); |
- testClick(); |
- testTap(); |
- repeatDelay = button.repeatDelay = oldDelay; |
- repeatInterval = button.repeatInterval = oldInterval; |
- } |
- |
- /** |
- * Runs mouse and touch hold tests with a repeat interval that is longer |
- * than the initial repeat delay. |
- */ |
- function testLongRepeat() { |
- var oldInterval = repeatInterval; |
- repeatInterval = button.repeatInterval = 3 * button.repeatDelay; |
- testTouchHold(); |
- testMousePressHold(); |
- repeatInterval = button.repeatInterval = oldInterval; |
- } |
- </script> |
-</body> |
-</html> |