selenium-webdriver 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
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);