annotate js/black-box.js @ 106:aad1c0a17ba4

added JSON support for iphone.
author Atul Varma <avarma@mozilla.com>
date Thu, 29 Apr 2010 11:11:04 -0700
parents a994fc89f341
children 3ad618d3370f
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
106
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
65 function initialize() {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
66 $(".test-button").click(
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
67 function() {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
68 var testButton = this;
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
69 var testFunc = window[testButton.id];
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
70 var cmds = [];
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
71 const COMMAND_DELAY = 500;
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
72
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
73 function queueNextCommand() {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
74 if (cmds.length)
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
75 window.setTimeout(nextCommand, COMMAND_DELAY);
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
76 else {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
77 $(testButton).removeClass("running");
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
78 }
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
79 }
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
80
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
81 function nextCommand() {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
82 var cmd = cmds.shift();
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
83 cmd();
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
84 queueNextCommand();
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
85 }
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
86
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
87 $(testButton).addClass("running");
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
88
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
89 resetDashboard(
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
90 function(method, args) {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
91 switch (method) {
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
92 case "blackBox.onDashboardLoaded":
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
93 var dashboard = args[0];
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
94 var options = args[1];
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
95 cmds = testFunc(options.jQuery);
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
96 break;
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
97 case "blackBox.afterInit":
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
98 queueNextCommand();
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
99 break;
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
100 }
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
101 });
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
102 });
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
103
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
104 resetDashboard(function() {});
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
105 }
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
106
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
107 $(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
108 function() {
106
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
109 if (!('JSON' in window))
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
110 Require.preload(document, ["js/json2.js"], initialize);
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
111 else
aad1c0a17ba4 added JSON support for iphone.
Atul Varma <avarma@mozilla.com>
parents: 103
diff changeset
112 initialize();
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
113 });