selenium-webdriver 0.0.24 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. data/{common/src/rb/CHANGES → CHANGES} +13 -0
  2. data/{common/src/rb/README → README} +1 -1
  3. data/{common/src/rb/lib → lib}/selenium-webdriver.rb +0 -0
  4. data/{common/src/rb/lib → lib}/selenium/webdriver.rb +2 -1
  5. data/{common/src/rb/lib → lib}/selenium/webdriver/bridge_helper.rb +0 -0
  6. data/{common/src/rb/lib → lib}/selenium/webdriver/child_process.rb +0 -0
  7. data/{chrome/src/rb/lib → lib}/selenium/webdriver/chrome.rb +0 -0
  8. data/{chrome/src/rb/lib → lib}/selenium/webdriver/chrome/bridge.rb +2 -2
  9. data/{chrome/src/rb/lib → lib}/selenium/webdriver/chrome/command_executor.rb +0 -0
  10. data/lib/selenium/webdriver/chrome/extension.zip +0 -0
  11. data/{chrome/src/rb/lib → lib}/selenium/webdriver/chrome/launcher.rb +26 -20
  12. data/{common/src/rb/lib → lib}/selenium/webdriver/core_ext/dir.rb +0 -0
  13. data/{common/src/rb/lib → lib}/selenium/webdriver/core_ext/string.rb +0 -0
  14. data/{common/src/rb/lib → lib}/selenium/webdriver/driver.rb +0 -0
  15. data/{common/src/rb/lib → lib}/selenium/webdriver/driver_extensions/takes_screenshot.rb +0 -0
  16. data/{common/src/rb/lib → lib}/selenium/webdriver/element.rb +0 -0
  17. data/{common/src/rb/lib → lib}/selenium/webdriver/error.rb +0 -0
  18. data/{common/src/rb/lib → lib}/selenium/webdriver/file_reaper.rb +2 -1
  19. data/{common/src/rb/lib → lib}/selenium/webdriver/find.rb +0 -0
  20. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox.rb +2 -1
  21. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/binary.rb +32 -6
  22. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/bridge.rb +0 -0
  23. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  24. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/launcher.rb +0 -0
  25. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  26. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  27. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/profile.rb +37 -72
  28. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/profiles_ini.rb +0 -0
  29. data/{firefox/src/rb/lib → lib}/selenium/webdriver/firefox/util.rb +0 -0
  30. data/{jobbie/src/rb/lib → lib}/selenium/webdriver/ie.rb +2 -2
  31. data/{jobbie/src/rb/lib → lib}/selenium/webdriver/ie/bridge.rb +7 -2
  32. data/{jobbie/src/rb/lib → lib}/selenium/webdriver/ie/lib.rb +0 -0
  33. data/{jobbie/prebuilt/Win32/Release → lib/selenium/webdriver/ie/native/win32}/InternetExplorerDriver.dll +0 -0
  34. data/lib/selenium/webdriver/ie/native/x64/InternetExplorerDriver.dll +0 -0
  35. data/{jobbie/src/rb/lib → lib}/selenium/webdriver/ie/util.rb +0 -0
  36. data/{common/src/rb/lib → lib}/selenium/webdriver/keys.rb +0 -0
  37. data/{common/src/rb/lib → lib}/selenium/webdriver/navigation.rb +0 -0
  38. data/{common/src/rb/lib → lib}/selenium/webdriver/options.rb +0 -0
  39. data/{common/src/rb/lib → lib}/selenium/webdriver/platform.rb +5 -1
  40. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote.rb +0 -0
  41. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/bridge.rb +0 -0
  42. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/capabilities.rb +0 -0
  43. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/commands.rb +0 -0
  44. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/http/common.rb +0 -0
  45. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/http/curb.rb +0 -0
  46. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/http/default.rb +5 -1
  47. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/response.rb +0 -0
  48. data/{remote/client/src/rb/lib → lib}/selenium/webdriver/remote/server_error.rb +0 -0
  49. data/{common/src/rb/lib → lib}/selenium/webdriver/target_locator.rb +0 -0
  50. data/{common/src/rb/lib → lib}/selenium/webdriver/timeouts.rb +0 -0
  51. data/lib/selenium/webdriver/zip_helper.rb +30 -0
  52. metadata +73 -214
  53. data/COPYING +0 -204
  54. data/chrome/prebuilt/Win32/Release/npchromedriver.dll +0 -0
  55. data/chrome/prebuilt/x64/Release/npchromedriver.dll +0 -0
  56. data/chrome/src/extension/background.html +0 -9
  57. data/chrome/src/extension/background.js +0 -1029
  58. data/chrome/src/extension/content_script.js +0 -1488
  59. data/chrome/src/extension/icons/busy.png +0 -0
  60. data/chrome/src/extension/icons/free.png +0 -0
  61. data/chrome/src/extension/manifest-nonwin.json +0 -19
  62. data/chrome/src/extension/manifest-win.json +0 -20
  63. data/chrome/src/extension/utils.js +0 -231
  64. data/common/src/js/abstractcommandprocessor.js +0 -132
  65. data/common/src/js/asserts.js +0 -296
  66. data/common/src/js/by.js +0 -149
  67. data/common/src/js/command.js +0 -380
  68. data/common/src/js/core/Blank.html +0 -7
  69. data/common/src/js/core/InjectedRemoteRunner.html +0 -8
  70. data/common/src/js/core/RemoteRunner.html +0 -101
  71. data/common/src/js/core/SeleniumLog.html +0 -109
  72. data/common/src/js/core/TestPrompt.html +0 -145
  73. data/common/src/js/core/TestRunner-splash.html +0 -55
  74. data/common/src/js/core/TestRunner.html +0 -165
  75. data/common/src/js/core/icons/all.png +0 -0
  76. data/common/src/js/core/icons/continue.png +0 -0
  77. data/common/src/js/core/icons/continue_disabled.png +0 -0
  78. data/common/src/js/core/icons/pause.png +0 -0
  79. data/common/src/js/core/icons/pause_disabled.png +0 -0
  80. data/common/src/js/core/icons/selected.png +0 -0
  81. data/common/src/js/core/icons/step.png +0 -0
  82. data/common/src/js/core/icons/step_disabled.png +0 -0
  83. data/common/src/js/core/lib/cssQuery/cssQuery-p.js +0 -6
  84. data/common/src/js/core/lib/cssQuery/src/cssQuery-level2.js +0 -142
  85. data/common/src/js/core/lib/cssQuery/src/cssQuery-level3.js +0 -150
  86. data/common/src/js/core/lib/cssQuery/src/cssQuery-standard.js +0 -53
  87. data/common/src/js/core/lib/cssQuery/src/cssQuery.js +0 -356
  88. data/common/src/js/core/lib/prototype.js +0 -2006
  89. data/common/src/js/core/lib/scriptaculous/builder.js +0 -101
  90. data/common/src/js/core/lib/scriptaculous/controls.js +0 -815
  91. data/common/src/js/core/lib/scriptaculous/dragdrop.js +0 -915
  92. data/common/src/js/core/lib/scriptaculous/effects.js +0 -958
  93. data/common/src/js/core/lib/scriptaculous/scriptaculous.js +0 -47
  94. data/common/src/js/core/lib/scriptaculous/slider.js +0 -283
  95. data/common/src/js/core/lib/scriptaculous/unittest.js +0 -383
  96. data/common/src/js/core/lib/snapsie.js +0 -91
  97. data/common/src/js/core/scripts/find_matching_child.js +0 -69
  98. data/common/src/js/core/scripts/htmlutils.js +0 -8716
  99. data/common/src/js/core/scripts/injection.html +0 -72
  100. data/common/src/js/core/scripts/selenium-api.js +0 -3291
  101. data/common/src/js/core/scripts/selenium-browserbot.js +0 -2457
  102. data/common/src/js/core/scripts/selenium-browserdetect.js +0 -153
  103. data/common/src/js/core/scripts/selenium-commandhandlers.js +0 -379
  104. data/common/src/js/core/scripts/selenium-executionloop.js +0 -175
  105. data/common/src/js/core/scripts/selenium-logging.js +0 -148
  106. data/common/src/js/core/scripts/selenium-remoterunner.js +0 -695
  107. data/common/src/js/core/scripts/selenium-testrunner.js +0 -1362
  108. data/common/src/js/core/scripts/selenium-version.js +0 -5
  109. data/common/src/js/core/scripts/ui-doc.html +0 -808
  110. data/common/src/js/core/scripts/ui-element.js +0 -1644
  111. data/common/src/js/core/scripts/ui-map-sample.js +0 -979
  112. data/common/src/js/core/scripts/user-extensions.js +0 -3
  113. data/common/src/js/core/scripts/user-extensions.js.sample +0 -75
  114. data/common/src/js/core/scripts/xmlextras.js +0 -153
  115. data/common/src/js/core/selenium-logo.png +0 -0
  116. data/common/src/js/core/selenium-test.css +0 -43
  117. data/common/src/js/core/selenium.css +0 -316
  118. data/common/src/js/core/xpath/dom.js +0 -566
  119. data/common/src/js/core/xpath/javascript-xpath-0.1.11.js +0 -2816
  120. data/common/src/js/core/xpath/util.js +0 -549
  121. data/common/src/js/core/xpath/xmltoken.js +0 -149
  122. data/common/src/js/core/xpath/xpath.js +0 -2481
  123. data/common/src/js/extension/README +0 -2
  124. data/common/src/js/extension/dommessenger.js +0 -152
  125. data/common/src/js/factory.js +0 -55
  126. data/common/src/js/future.js +0 -141
  127. data/common/src/js/jsunit.js +0 -40
  128. data/common/src/js/jsunit/app/css/jsUnitStyle.css +0 -50
  129. data/common/src/js/jsunit/app/css/readme +0 -10
  130. data/common/src/js/jsunit/app/emptyPage.html +0 -11
  131. data/common/src/js/jsunit/app/jsUnitCore.js +0 -534
  132. data/common/src/js/jsunit/app/jsUnitMockTimeout.js +0 -81
  133. data/common/src/js/jsunit/app/jsUnitTestManager.js +0 -705
  134. data/common/src/js/jsunit/app/jsUnitTestSuite.js +0 -44
  135. data/common/src/js/jsunit/app/jsUnitTracer.js +0 -102
  136. data/common/src/js/jsunit/app/jsUnitVersionCheck.js +0 -59
  137. data/common/src/js/jsunit/app/main-counts-errors.html +0 -12
  138. data/common/src/js/jsunit/app/main-counts-failures.html +0 -13
  139. data/common/src/js/jsunit/app/main-counts-runs.html +0 -13
  140. data/common/src/js/jsunit/app/main-counts.html +0 -21
  141. data/common/src/js/jsunit/app/main-data.html +0 -178
  142. data/common/src/js/jsunit/app/main-errors.html +0 -23
  143. data/common/src/js/jsunit/app/main-frame.html +0 -19
  144. data/common/src/js/jsunit/app/main-loader.html +0 -45
  145. data/common/src/js/jsunit/app/main-progress.html +0 -25
  146. data/common/src/js/jsunit/app/main-results.html +0 -67
  147. data/common/src/js/jsunit/app/main-status.html +0 -13
  148. data/common/src/js/jsunit/app/testContainer.html +0 -16
  149. data/common/src/js/jsunit/app/testContainerController.html +0 -77
  150. data/common/src/js/jsunit/app/xbDebug.js +0 -306
  151. data/common/src/js/jsunit/changelog.txt +0 -60
  152. data/common/src/js/jsunit/css/jsUnitStyle.css +0 -83
  153. data/common/src/js/jsunit/images/green.gif +0 -0
  154. data/common/src/js/jsunit/images/logo_jsunit.gif +0 -0
  155. data/common/src/js/jsunit/images/powerby-transparent.gif +0 -0
  156. data/common/src/js/jsunit/images/red.gif +0 -0
  157. data/common/src/js/jsunit/licenses/JDOM_license.txt +0 -56
  158. data/common/src/js/jsunit/licenses/Jetty_license.html +0 -213
  159. data/common/src/js/jsunit/licenses/MPL-1.1.txt +0 -470
  160. data/common/src/js/jsunit/licenses/gpl-2.txt +0 -340
  161. data/common/src/js/jsunit/licenses/index.html +0 -141
  162. data/common/src/js/jsunit/licenses/lgpl-2.1.txt +0 -504
  163. data/common/src/js/jsunit/licenses/mpl-tri-license-c.txt +0 -35
  164. data/common/src/js/jsunit/licenses/mpl-tri-license-html.txt +0 -35
  165. data/common/src/js/jsunit/readme.txt +0 -19
  166. data/common/src/js/jsunit/testRunner.html +0 -167
  167. data/common/src/js/jsunit/version.txt +0 -1
  168. data/common/src/js/key.js +0 -117
  169. data/common/src/js/localcommandprocessor.js +0 -171
  170. data/common/src/js/testcase.js +0 -219
  171. data/common/src/js/timing.js +0 -89
  172. data/common/src/js/webdriver.js +0 -860
  173. data/common/src/js/webelement.js +0 -483
  174. data/firefox/prebuilt/Win32/Release/webdriver-firefox.dll +0 -0
  175. data/firefox/prebuilt/amd64/libnoblur64.so +0 -0
  176. data/firefox/prebuilt/i386/libnoblur.so +0 -0
  177. data/firefox/prebuilt/linux/Release/libwebdriver-firefox.so +0 -0
  178. data/firefox/prebuilt/linux64/Release/libwebdriver-firefox.so +0 -0
  179. data/firefox/prebuilt/nsICommandProcessor.xpt +0 -0
  180. data/firefox/prebuilt/nsINativeEvents.xpt +0 -0
  181. data/firefox/prebuilt/nsIResponseHandler.xpt +0 -0
  182. data/firefox/src/extension/chrome.manifest +0 -3
  183. data/firefox/src/extension/components/badCertListener.js +0 -295
  184. data/firefox/src/extension/components/dispatcher.js +0 -495
  185. data/firefox/src/extension/components/driver-component.js +0 -130
  186. data/firefox/src/extension/components/errorcode.js +0 -70
  187. data/firefox/src/extension/components/firefoxDriver.js +0 -831
  188. data/firefox/src/extension/components/json2.js +0 -273
  189. data/firefox/src/extension/components/keytest.html +0 -554
  190. data/firefox/src/extension/components/nsCommandProcessor.js +0 -684
  191. data/firefox/src/extension/components/promptService.js +0 -208
  192. data/firefox/src/extension/components/request.js +0 -219
  193. data/firefox/src/extension/components/response.js +0 -276
  194. data/firefox/src/extension/components/screenshooter.js +0 -81
  195. data/firefox/src/extension/components/session.js +0 -314
  196. data/firefox/src/extension/components/sessionstore.js +0 -226
  197. data/firefox/src/extension/components/socketListener.js +0 -435
  198. data/firefox/src/extension/components/utils.js +0 -1335
  199. data/firefox/src/extension/components/webLoadingListener.js +0 -57
  200. data/firefox/src/extension/components/webdriverserver.js +0 -110
  201. data/firefox/src/extension/components/wrappedElement.js +0 -706
  202. data/firefox/src/extension/content/fxdriver.xul +0 -30
  203. data/firefox/src/extension/content/server.js +0 -95
  204. data/firefox/src/extension/idl/nsICommandProcessor.idl +0 -38
  205. data/firefox/src/extension/idl/nsIResponseHandler.idl +0 -34
  206. data/firefox/src/extension/install.rdf +0 -29
  207. data/jobbie/prebuilt/x64/Release/InternetExplorerDriver.dll +0 -0
@@ -1,11 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
- <html>
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
- <title>emptyPage</title>
6
- </head>
7
-
8
- <body>
9
- </body>
10
- </html>
11
-
@@ -1,534 +0,0 @@
1
- var JSUNIT_UNDEFINED_VALUE;
2
- var JSUNIT_VERSION = 2.2;
3
- var isTestPageLoaded = false;
4
-
5
- //hack for NS62 bug
6
- function jsUnitFixTop() {
7
- var tempTop = top;
8
- if (!tempTop) {
9
- tempTop = window;
10
- while (tempTop.parent) {
11
- tempTop = tempTop.parent;
12
- if (tempTop.top && tempTop.top.jsUnitTestSuite) {
13
- tempTop = tempTop.top;
14
- break;
15
- }
16
- }
17
- }
18
- try {
19
- window.top = tempTop;
20
- } catch (e) {
21
- }
22
- }
23
-
24
- jsUnitFixTop();
25
-
26
- /**
27
- + * A more functional typeof
28
- + * @param Object o
29
- + * @return String
30
- + */
31
- function _trueTypeOf(something) {
32
- var result = typeof something;
33
- try {
34
- switch (result) {
35
- case 'string':
36
- case 'boolean':
37
- case 'number':
38
- break;
39
- case 'object':
40
- case 'function':
41
- switch (something.constructor)
42
- {
43
- case String:
44
- result = 'String';
45
- break;
46
- case Boolean:
47
- result = 'Boolean';
48
- break;
49
- case Number:
50
- result = 'Number';
51
- break;
52
- case Array:
53
- result = 'Array';
54
- break;
55
- case RegExp:
56
- result = 'RegExp';
57
- break;
58
- case Function:
59
- result = 'Function';
60
- break;
61
- default:
62
- var m = something.constructor.toString().match(/function\s*([^( ]+)\(/);
63
- if (m)
64
- result = m[1];
65
- else
66
- break;
67
- }
68
- break;
69
- }
70
- }
71
- finally {
72
- result = result.substr(0, 1).toUpperCase() + result.substr(1);
73
- return result;
74
- }
75
- }
76
-
77
- function _displayStringForValue(aVar) {
78
- var result = '<' + aVar + '>';
79
- if (!(aVar === null || aVar === top.JSUNIT_UNDEFINED_VALUE)) {
80
- result += ' (' + _trueTypeOf(aVar) + ')';
81
- }
82
- return result;
83
- }
84
-
85
- function fail(failureMessage) {
86
- throw new JsUnitException("Call to fail()", failureMessage);
87
- }
88
-
89
- function error(errorMessage) {
90
- var errorObject = new Object();
91
- errorObject.description = errorMessage;
92
- errorObject.stackTrace = getStackTrace();
93
- throw errorObject;
94
- }
95
-
96
- function argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) {
97
- return args.length == expectedNumberOfNonCommentArgs + 1;
98
- }
99
-
100
- function commentArg(expectedNumberOfNonCommentArgs, args) {
101
- if (argumentsIncludeComments(expectedNumberOfNonCommentArgs, args))
102
- return args[0];
103
-
104
- return null;
105
- }
106
-
107
- function nonCommentArg(desiredNonCommentArgIndex, expectedNumberOfNonCommentArgs, args) {
108
- return argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) ?
109
- args[desiredNonCommentArgIndex] :
110
- args[desiredNonCommentArgIndex - 1];
111
- }
112
-
113
- function _validateArguments(expectedNumberOfNonCommentArgs, args) {
114
- if (!( args.length == expectedNumberOfNonCommentArgs ||
115
- (args.length == expectedNumberOfNonCommentArgs + 1 && typeof(args[0]) == 'string') ))
116
- error('Incorrect arguments passed to assert function');
117
- }
118
-
119
- function _assert(comment, booleanValue, failureMessage) {
120
- if (!booleanValue)
121
- throw new JsUnitException(comment, failureMessage);
122
- }
123
-
124
- function assert() {
125
- _validateArguments(1, arguments);
126
- var booleanValue = nonCommentArg(1, 1, arguments);
127
-
128
- if (typeof(booleanValue) != 'boolean')
129
- error('Bad argument to assert(boolean)');
130
-
131
- _assert(commentArg(1, arguments), booleanValue === true, 'Call to assert(boolean) with false');
132
- }
133
-
134
- function assertTrue() {
135
- _validateArguments(1, arguments);
136
- var booleanValue = nonCommentArg(1, 1, arguments);
137
-
138
- if (typeof(booleanValue) != 'boolean')
139
- error('Bad argument to assertTrue(boolean)');
140
-
141
- _assert(commentArg(1, arguments), booleanValue === true, 'Call to assertTrue(boolean) with false');
142
- }
143
-
144
- function assertFalse() {
145
- _validateArguments(1, arguments);
146
- var booleanValue = nonCommentArg(1, 1, arguments);
147
-
148
- if (typeof(booleanValue) != 'boolean')
149
- error('Bad argument to assertFalse(boolean)');
150
-
151
- _assert(commentArg(1, arguments), booleanValue === false, 'Call to assertFalse(boolean) with true');
152
- }
153
-
154
- function assertEquals() {
155
- _validateArguments(2, arguments);
156
- var var1 = nonCommentArg(1, 2, arguments);
157
- var var2 = nonCommentArg(2, 2, arguments);
158
- _assert(commentArg(2, arguments), var1 === var2, 'Expected ' + _displayStringForValue(var1) + ' but was ' + _displayStringForValue(var2));
159
- }
160
-
161
- function assertNotEquals() {
162
- _validateArguments(2, arguments);
163
- var var1 = nonCommentArg(1, 2, arguments);
164
- var var2 = nonCommentArg(2, 2, arguments);
165
- _assert(commentArg(2, arguments), var1 !== var2, 'Expected not to be ' + _displayStringForValue(var2));
166
- }
167
-
168
- function assertNull() {
169
- _validateArguments(1, arguments);
170
- var aVar = nonCommentArg(1, 1, arguments);
171
- _assert(commentArg(1, arguments), aVar === null, 'Expected ' + _displayStringForValue(null) + ' but was ' + _displayStringForValue(aVar));
172
- }
173
-
174
- function assertNotNull() {
175
- _validateArguments(1, arguments);
176
- var aVar = nonCommentArg(1, 1, arguments);
177
- _assert(commentArg(1, arguments), aVar !== null, 'Expected not to be ' + _displayStringForValue(null));
178
- }
179
-
180
- function assertUndefined() {
181
- _validateArguments(1, arguments);
182
- var aVar = nonCommentArg(1, 1, arguments);
183
- _assert(commentArg(1, arguments), aVar === top.JSUNIT_UNDEFINED_VALUE, 'Expected ' + _displayStringForValue(top.JSUNIT_UNDEFINED_VALUE) + ' but was ' + _displayStringForValue(aVar));
184
- }
185
-
186
- function assertNotUndefined() {
187
- _validateArguments(1, arguments);
188
- var aVar = nonCommentArg(1, 1, arguments);
189
- _assert(commentArg(1, arguments), aVar !== top.JSUNIT_UNDEFINED_VALUE, 'Expected not to be ' + _displayStringForValue(top.JSUNIT_UNDEFINED_VALUE));
190
- }
191
-
192
- function assertNaN() {
193
- _validateArguments(1, arguments);
194
- var aVar = nonCommentArg(1, 1, arguments);
195
- _assert(commentArg(1, arguments), isNaN(aVar), 'Expected NaN');
196
- }
197
-
198
- function assertNotNaN() {
199
- _validateArguments(1, arguments);
200
- var aVar = nonCommentArg(1, 1, arguments);
201
- _assert(commentArg(1, arguments), !isNaN(aVar), 'Expected not NaN');
202
- }
203
-
204
- function assertObjectEquals() {
205
- _validateArguments(2, arguments);
206
- var var1 = nonCommentArg(1, 2, arguments);
207
- var var2 = nonCommentArg(2, 2, arguments);
208
- var type;
209
- var msg = commentArg(2, arguments)?commentArg(2, arguments):'';
210
- var isSame = (var1 === var2);
211
- //shortpath for references to same object
212
- var isEqual = ( (type = _trueTypeOf(var1)) == _trueTypeOf(var2) );
213
- if (isEqual && !isSame) {
214
- switch (type) {
215
- case 'String':
216
- case 'Number':
217
- isEqual = (var1 == var2);
218
- break;
219
- case 'Boolean':
220
- case 'Date':
221
- isEqual = (var1 === var2);
222
- break;
223
- case 'RegExp':
224
- case 'Function':
225
- isEqual = (var1.toString() === var2.toString());
226
- break;
227
- default: //Object | Array
228
- var i;
229
- if (isEqual = (var1.length === var2.length))
230
- for (i in var1)
231
- assertObjectEquals(msg + ' found nested ' + type + '@' + i + '\n', var1[i], var2[i]);
232
- }
233
- _assert(msg, isEqual, 'Expected ' + _displayStringForValue(var1) + ' but was ' + _displayStringForValue(var2));
234
- }
235
- }
236
-
237
- assertArrayEquals = assertObjectEquals;
238
-
239
- function assertEvaluatesToTrue() {
240
- _validateArguments(1, arguments);
241
- var value = nonCommentArg(1, 1, arguments);
242
- if (!value)
243
- fail(commentArg(1, arguments));
244
- }
245
-
246
- function assertEvaluatesToFalse() {
247
- _validateArguments(1, arguments);
248
- var value = nonCommentArg(1, 1, arguments);
249
- if (value)
250
- fail(commentArg(1, arguments));
251
- }
252
-
253
- function assertHTMLEquals() {
254
- _validateArguments(2, arguments);
255
- var var1 = nonCommentArg(1, 2, arguments);
256
- var var2 = nonCommentArg(2, 2, arguments);
257
- var var1Standardized = standardizeHTML(var1);
258
- var var2Standardized = standardizeHTML(var2);
259
-
260
- _assert(commentArg(2, arguments), var1Standardized === var2Standardized, 'Expected ' + _displayStringForValue(var1Standardized) + ' but was ' + _displayStringForValue(var2Standardized));
261
- }
262
-
263
- function assertHashEquals() {
264
- _validateArguments(2, arguments);
265
- var var1 = nonCommentArg(1, 2, arguments);
266
- var var2 = nonCommentArg(2, 2, arguments);
267
- for (var key in var1) {
268
- assertNotUndefined("Expected hash had key " + key + " that was not found", var2[key]);
269
- assertEquals(
270
- "Value for key " + key + " mismatch - expected = " + var1[key] + ", actual = " + var2[key],
271
- var1[key], var2[key]
272
- );
273
- }
274
- for (var key in var2) {
275
- assertNotUndefined("Actual hash had key " + key + " that was not expected", var1[key]);
276
- }
277
- }
278
-
279
- function assertRoughlyEquals() {
280
- _validateArguments(3, arguments);
281
- var expected = nonCommentArg(1, 3, arguments);
282
- var actual = nonCommentArg(2, 3, arguments);
283
- var tolerance = nonCommentArg(3, 3, arguments);
284
- assertTrue(
285
- "Expected " + expected + ", but got " + actual + " which was more than " + tolerance + " away",
286
- Math.abs(expected - actual) < tolerance
287
- );
288
- }
289
-
290
- function assertContains() {
291
- _validateArguments(2, arguments);
292
- var contained = nonCommentArg(1, 2, arguments);
293
- var container = nonCommentArg(2, 2, arguments);
294
- assertTrue(
295
- "Expected '" + container + "' to contain '" + contained + "'",
296
- container.indexOf(contained) != -1
297
- );
298
- }
299
-
300
- function standardizeHTML(html) {
301
- var translator = document.createElement("DIV");
302
- translator.innerHTML = html;
303
- return translator.innerHTML;
304
- }
305
-
306
- function isLoaded() {
307
- return isTestPageLoaded;
308
- }
309
-
310
- function setUp() {
311
- }
312
-
313
- function tearDown() {
314
- }
315
-
316
- function getFunctionName(aFunction) {
317
- var regexpResult = aFunction.toString().match(/function(\s*)(\w*)/);
318
- if (regexpResult && regexpResult.length >= 2 && regexpResult[2]) {
319
- return regexpResult[2];
320
- }
321
- return 'anonymous';
322
- }
323
-
324
- function getStackTrace() {
325
- var result = '';
326
-
327
- if (typeof(arguments.caller) != 'undefined') { // IE, not ECMA
328
- for (var a = arguments.caller; a != null; a = a.caller) {
329
- result += '> ' + getFunctionName(a.callee) + '\n';
330
- if (a.caller == a) {
331
- result += '*';
332
- break;
333
- }
334
- }
335
- }
336
- else { // Mozilla, not ECMA
337
- // fake an exception so we can get Mozilla's error stack
338
- var testExcp;
339
- try
340
- {
341
- foo.bar;
342
- }
343
- catch(testExcp)
344
- {
345
- var stack = parseErrorStack(testExcp);
346
- for (var i = 1; i < stack.length; i++)
347
- {
348
- result += '> ' + stack[i] + '\n';
349
- }
350
- }
351
- }
352
-
353
- return result;
354
- }
355
-
356
- function parseErrorStack(excp)
357
- {
358
- var stack = [];
359
- var name;
360
-
361
- if (!excp || !excp.stack)
362
- {
363
- return stack;
364
- }
365
-
366
- var stacklist = excp.stack.split('\n');
367
-
368
- for (var i = 0; i < stacklist.length - 1; i++)
369
- {
370
- var framedata = stacklist[i];
371
-
372
- name = framedata.match(/^(\w*)/)[1];
373
- if (!name) {
374
- name = 'anonymous';
375
- }
376
-
377
- stack[stack.length] = name;
378
- }
379
- // remove top level anonymous functions to match IE
380
-
381
- while (stack.length && stack[stack.length - 1] == 'anonymous')
382
- {
383
- stack.length = stack.length - 1;
384
- }
385
- return stack;
386
- }
387
-
388
- function JsUnitException(comment, message) {
389
- this.isJsUnitException = true;
390
- this.comment = comment;
391
- this.jsUnitMessage = message;
392
- this.stackTrace = getStackTrace();
393
- }
394
-
395
- function warn() {
396
- if (top.tracer != null)
397
- top.tracer.warn(arguments[0], arguments[1]);
398
- }
399
-
400
- function inform() {
401
- if (top.tracer != null)
402
- top.tracer.inform(arguments[0], arguments[1]);
403
- }
404
-
405
- function info() {
406
- inform(arguments[0], arguments[1]);
407
- }
408
-
409
- function debug() {
410
- if (top.tracer != null)
411
- top.tracer.debug(arguments[0], arguments[1]);
412
- }
413
-
414
- function setJsUnitTracer(aJsUnitTracer) {
415
- top.tracer = aJsUnitTracer;
416
- }
417
-
418
- function trim(str) {
419
- if (str == null)
420
- return null;
421
-
422
- var startingIndex = 0;
423
- var endingIndex = str.length - 1;
424
-
425
- while (str.substring(startingIndex, startingIndex + 1) == ' ')
426
- startingIndex++;
427
-
428
- while (str.substring(endingIndex, endingIndex + 1) == ' ')
429
- endingIndex--;
430
-
431
- if (endingIndex < startingIndex)
432
- return '';
433
-
434
- return str.substring(startingIndex, endingIndex + 1);
435
- }
436
-
437
- function isBlank(str) {
438
- return trim(str) == '';
439
- }
440
-
441
- // the functions push(anArray, anObject) and pop(anArray)
442
- // exist because the JavaScript Array.push(anObject) and Array.pop()
443
- // functions are not available in IE 5.0
444
-
445
- function push(anArray, anObject) {
446
- anArray[anArray.length] = anObject;
447
- }
448
- function pop(anArray) {
449
- if (anArray.length >= 1) {
450
- delete anArray[anArray.length - 1];
451
- anArray.length--;
452
- }
453
- }
454
-
455
- function jsUnitGetParm(name)
456
- {
457
- if (typeof(top.jsUnitParmHash[name]) != 'undefined')
458
- {
459
- return top.jsUnitParmHash[name];
460
- }
461
- return null;
462
- }
463
-
464
- if (top && typeof(top.xbDEBUG) != 'undefined' && top.xbDEBUG.on && top.testManager)
465
- {
466
- top.xbDebugTraceObject('top.testManager.containerTestFrame', 'JSUnitException');
467
- // asserts
468
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', '_displayStringForValue');
469
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'error');
470
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'argumentsIncludeComments');
471
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'commentArg');
472
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'nonCommentArg');
473
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', '_validateArguments');
474
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', '_assert');
475
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assert');
476
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertTrue');
477
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertEquals');
478
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNotEquals');
479
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNull');
480
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNotNull');
481
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertUndefined');
482
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNotUndefined');
483
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNaN');
484
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'assertNotNaN');
485
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'isLoaded');
486
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'setUp');
487
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'tearDown');
488
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'getFunctionName');
489
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'getStackTrace');
490
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'warn');
491
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'inform');
492
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'debug');
493
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'setJsUnitTracer');
494
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'trim');
495
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'isBlank');
496
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'newOnLoadEvent');
497
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'push');
498
- top.xbDebugTraceFunction('top.testManager.containerTestFrame', 'pop');
499
- }
500
-
501
- function newOnLoadEvent() {
502
- isTestPageLoaded = true;
503
- }
504
-
505
- function jsUnitSetOnLoad(windowRef, onloadHandler)
506
- {
507
- var isKonqueror = navigator.userAgent.indexOf('Konqueror/') != -1 ||
508
- navigator.userAgent.indexOf('Safari/') != -1;
509
-
510
- if (typeof(windowRef.attachEvent) != 'undefined') {
511
- // Internet Explorer, Opera
512
- windowRef.attachEvent("onload", onloadHandler);
513
- } else if (typeof(windowRef.addEventListener) != 'undefined' && !isKonqueror) {
514
- // Mozilla, Konqueror
515
- // exclude Konqueror due to load issues
516
- windowRef.addEventListener("load", onloadHandler, false);
517
- } else if (typeof(windowRef.document.addEventListener) != 'undefined' && !isKonqueror) {
518
- // DOM 2 Events
519
- // exclude Mozilla, Konqueror due to load issues
520
- windowRef.document.addEventListener("load", onloadHandler, false);
521
- } else if (typeof(windowRef.onload) != 'undefined' && windowRef.onload) {
522
- windowRef.jsunit_original_onload = windowRef.onload;
523
- windowRef.onload = function() {
524
- windowRef.jsunit_original_onload();
525
- onloadHandler();
526
- };
527
- } else {
528
- // browsers that do not support windowRef.attachEvent or
529
- // windowRef.addEventListener will override a page's own onload event
530
- windowRef.onload = onloadHandler;
531
- }
532
- }
533
-
534
- jsUnitSetOnLoad(window, newOnLoadEvent);