UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

145 lines (123 loc) 4.49 kB
<!DOCTYPE html> <html> <!-- Copyright 2010 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.ui.Prompt</title> <script src="../base.js"></script> <script> goog.require('goog.dom.selection'); goog.require('goog.functions'); goog.require('goog.string'); goog.require('goog.ui.BidiInput'); goog.require('goog.ui.Prompt'); goog.require('goog.userAgent.product'); goog.require('goog.testing.jsunit'); goog.require('goog.testing.events'); </script> <link rel="stylesheet" type="text/css" href="../css/common.css"/> <link rel="stylesheet" type="text/css" href="../css/dialog.css"/> </head> <body> <input type='button' value='Prompt' onclick='newPrompt();' /> <script> var prompt; function setUp() { document.body.focus(); } function tearDown() { goog.dispose(prompt); } function testFocusOnInputElement() { // FF does not perform focus if the window is not active in the first place. if (goog.userAgent.GECKO && document.hasFocus && !document.hasFocus()) { return; } var promptResult = undefined; prompt = new goog.ui.Prompt('title', 'Prompt:', function(result) { promptResult = result; }, 'defaultValue'); prompt.setVisible(true); if (goog.userAgent.product.CHROME) { // For some reason, this test fails non-deterministically on Chrome, // but only on the test farm. return; } assertEquals('defaultValue', goog.dom.selection.getText(prompt.userInputEl_)); } function testValidationFunction() { var promptResult = undefined; prompt = new goog.ui.Prompt('title', 'Prompt:', function(result) { promptResult = result; }, ''); prompt.setValidationFunction(goog.functions.not(goog.string.isEmpty)); prompt.setVisible(true); var buttonSet = prompt.getButtonSet(); var okButton = buttonSet.getButton(goog.ui.Dialog.DefaultButtonKeys.OK); assertTrue(okButton.disabled); prompt.userInputEl_.value = ''; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.SPACE); assertTrue(okButton.disabled); prompt.userInputEl_.value = 'foo'; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.X); assertFalse(okButton.disabled); } function testBidiInput() { var shalomInHebrew = '\u05e9\u05dc\u05d5\u05dd'; var promptResult = undefined; prompt = new goog.ui.Prompt('title', 'Prompt:', goog.functions.NULL, ''); var bidiInput = new goog.ui.BidiInput(); prompt.setInputDecoratorFn(goog.bind(bidiInput.decorate, bidiInput)); prompt.setVisible(true); prompt.userInputEl_.value = shalomInHebrew; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.SPACE); goog.testing.events.fireBrowserEvent( {'target' : prompt.userInputEl_, 'type' : 'input'}); bidiInput.inputHandler_.dispatchEvent( goog.events.InputHandler.EventType.INPUT); assertEquals('rtl', prompt.userInputEl_.dir); prompt.userInputEl_.value = 'shalomInEnglish'; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.SPACE); goog.testing.events.fireBrowserEvent( {'target' : prompt.userInputEl_, 'type' : 'input'}); bidiInput.inputHandler_.dispatchEvent( goog.events.InputHandler.EventType.INPUT); assertEquals('ltr', prompt.userInputEl_.dir); goog.dispose(bidiInput); } function testBidiInput_off() { var shalomInHebrew = '\u05e9\u05dc\u05d5\u05dd'; var promptResult = undefined; prompt = new goog.ui.Prompt('title', 'Prompt:', goog.functions.NULL, ''); prompt.setVisible(true); prompt.userInputEl_.value = shalomInHebrew; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.SPACE); goog.testing.events.fireBrowserEvent( {'target' : prompt.userInputEl_, 'type' : 'input'}); assertEquals('', prompt.userInputEl_.dir); prompt.userInputEl_.value = 'shalomInEnglish'; goog.testing.events.fireKeySequence(prompt.userInputEl_, goog.events.KeyCodes.SPACE); assertEquals('', prompt.userInputEl_.dir); } // An interactive test so we can manually see what it looks like. function newPrompt() { prompt = new goog.ui.Prompt('title', 'Prompt:', function(result) { alert('Result: ' + result); goog.dispose(prompt); }, 'defaultValue'); prompt.setVisible(true); } </script> </body> </html>