File: helloworlddialog_test.js

package info (click to toggle)
aseba-plugin-blockly 20180211%2Bgit-2
  • links: PTS
  • area: non-free
  • in suites: buster
  • size: 64,472 kB
  • sloc: xml: 7,976; python: 2,314; sh: 261; lisp: 24; makefile: 10
file content (80 lines) | stat: -rw-r--r-- 2,317 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Copyright 2008 The Closure Library Authors. All Rights Reserved.
// Use of this source code is governed by the Apache License, Version 2.0.

goog.provide('goog.demos.editor.HelloWorldDialogTest');
goog.setTestOnly('goog.demos.editor.HelloWorldDialogTest');

goog.require('goog.demos.editor.HelloWorldDialog');
goog.require('goog.demos.editor.HelloWorldDialog.OkEvent');
goog.require('goog.dom.DomHelper');
goog.require('goog.events.EventHandler');
goog.require('goog.testing.LooseMock');
goog.require('goog.testing.events');
goog.require('goog.testing.jsunit');
goog.require('goog.testing.mockmatchers.ArgumentMatcher');
goog.require('goog.ui.editor.AbstractDialog.EventType');

var dialog;
var mockOkHandler;

var CUSTOM_MESSAGE = 'Hello, cruel world...';

function setUp() {
  mockOkHandler = new goog.testing.LooseMock(goog.events.EventHandler);
}

function tearDown() {
  dialog.dispose();
}

/**
 * Creates and shows the dialog to be tested.
 */
function createAndShow() {
  dialog = new goog.demos.editor.HelloWorldDialog(new goog.dom.DomHelper());
  dialog.addEventListener(goog.ui.editor.AbstractDialog.EventType.OK,
                          mockOkHandler);
  dialog.show();
}

/**
 * Sets up the mock event handler to expect an OK event with the given
 * message.
 * @param {string} message Hello world message the OK event is expected to
 *     carry.
 */
function expectOk(message) {
  mockOkHandler.handleEvent(new goog.testing.mockmatchers.ArgumentMatcher(
      function(arg) {
        return arg.type == goog.ui.editor.AbstractDialog.EventType.OK &&
               arg.message == message;
      }));
}

/**
 * Tests that when you show the dialog, the input field has the correct
 * sample text in it.
 */
function testShow() {
  mockOkHandler.$replay();
  createAndShow();

  assertEquals('Input field has incorrect sample text',
               'Hello, world!',
               dialog.input_.value);
  mockOkHandler.$verify();
}

/**
 * Tests that clicking OK dispatches an event carying the entered message.
 */
function testOk() {
  expectOk(CUSTOM_MESSAGE);
  mockOkHandler.$replay();
  createAndShow();

  dialog.input_.value = CUSTOM_MESSAGE;
  goog.testing.events.fireClickSequence(dialog.getOkButtonElement());

  mockOkHandler.$verify(); // Verifies OK is dispatched with correct message.
}