Mercurial > bugzilla-dashboard
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 |
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 }); |