annotate js/black-box.js @ 103:a994fc89f341

added semi-automated system tests to black box.
author Atul Varma <avarma@mozilla.com>
date Thu, 29 Apr 2010 10:28:26 -0700
parents 00b02ba5236c
children aad1c0a17ba4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
1 function testLoginWithCorrectPassword($) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
2 return [
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
3 function() { $("#login .username").val("john@doe.com");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
4 $("#login .password").val("test"); },
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
5 function() { $("#login form").submit(); }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
6 ];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
7 }
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
8
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
9 function testLoginWithNoPassword($) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
10 return [
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
11 function() { $("#login .username").val("john@doe.com");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
12 $("#login .password").val(""); },
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
13 function() { $("#login form").submit(); }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
14 ];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
15 }
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
16
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
17 function testLoginWithIncorrectPassword($) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
18 return [
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
19 function() { $("#login .username").val("john@doe.com");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
20 $("#login .password").val("wrong"); },
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
21 function() { $("#login form").submit(); }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
22 ];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
23 }
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
24
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
25 function setDashboardLoaded(delegate, window) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
26 window.onDashboardLoaded = function onDashboardLoaded(dashboard, options) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
27 $(dashboard).error(
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
28 function(event) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
29 if (window.console)
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
30 window.console.warn("An error occurred in the dashboard iframe.");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
31 });
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
32
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
33 delegate("blackBox.onDashboardLoaded", [dashboard, options]);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
34
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
35 var require = Require.build(Require.modules, {window: window});
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
36
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
37 var moduleExports = {};
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
38 var dbrequire = dashboard.Require.build(dashboard.Require.modules,
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
39 moduleExports);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
40
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
41 // Get rid of any form values cached by the browser.
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
42 options.jQuery("input[type=text], input[type=password]").val("");
101
106a0018e601 Get rid of any form values cached by the browser.
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
43
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
44 var ajaxImpl = require("mocks/bugzilla/trivial").makeAjaxImpl();
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
45 options.cache = require("mocks/cache").create(delegate);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
46 options.Bugzilla = require("mocks/bugzilla").create(options.Bugzilla,
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
47 ajaxImpl,
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
48 delegate);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
49 dbrequire("date-utils").now = function() {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
50 return new Date("Tue Apr 27 2010 09:00:00 GMT");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
51 };
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
52
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
53 delegate("blackBox.beforeInit", []);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
54 dbrequire("app/loader").init(moduleExports, options);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
55 delegate("blackBox.afterInit", []);
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
56 };
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
57 }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
58
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
59 function resetDashboard(delegate) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
60 setDashboardLoaded(delegate, window);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
61 var iframe = $("#dashboard").get(0);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
62 iframe.src = "index.html?testing=1";
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
63 }
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
64
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
65 $(window).ready(
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
66 function() {
103
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
67 $(".test-button").click(
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
68 function() {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
69 var testButton = this;
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
70 var testFunc = window[testButton.id];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
71 var cmds = [];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
72 const COMMAND_DELAY = 500;
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
73
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
74 function queueNextCommand() {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
75 if (cmds.length)
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
76 window.setTimeout(nextCommand, COMMAND_DELAY);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
77 else {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
78 $(testButton).removeClass("running");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
79 }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
80 }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
81
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
82 function nextCommand() {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
83 var cmd = cmds.shift();
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
84 cmd();
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
85 queueNextCommand();
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
86 }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
87
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
88 $(testButton).addClass("running");
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
89
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
90 resetDashboard(
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
91 function(method, args) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
92 switch (method) {
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
93 case "blackBox.onDashboardLoaded":
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
94 var dashboard = args[0];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
95 var options = args[1];
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
96 cmds = testFunc(options.jQuery);
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
97 break;
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
98 case "blackBox.afterInit":
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
99 queueNextCommand();
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
100 break;
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
101 }
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
102 });
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
103 });
a994fc89f341 added semi-automated system tests to black box.
Atul Varma <avarma@mozilla.com>
parents: 102
diff changeset
104 resetDashboard(function() {});
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
105 });