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,47 +0,0 @@
1
- // Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining
4
- // a copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to
8
- // permit persons to whom the Software is furnished to do so, subject to
9
- // the following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be
12
- // included in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- var Scriptaculous = {
23
- Version: '1.6.1',
24
- require: function(libraryName) {
25
- // inserting via DOM fails in Safari 2.0, so brute force approach
26
- document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
27
- },
28
- load: function() {
29
- if((typeof Prototype=='undefined') ||
30
- (typeof Element == 'undefined') ||
31
- (typeof Element.Methods=='undefined') ||
32
- parseFloat(Prototype.Version.split(".")[0] + "." +
33
- Prototype.Version.split(".")[1]) < 1.5)
34
- throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0");
35
-
36
- $A(document.getElementsByTagName("script")).findAll( function(s) {
37
- return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
38
- }).each( function(s) {
39
- var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
40
- var includes = s.src.match(/\?.*load=([a-z,]*)/);
41
- (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(
42
- function(include) { Scriptaculous.require(path+include+'.js') });
43
- });
44
- }
45
- }
46
-
47
- Scriptaculous.load();
@@ -1,283 +0,0 @@
1
- // Copyright (c) 2005 Marty Haught, Thomas Fuchs
2
- //
3
- // See http://script.aculo.us for more info
4
- //
5
- // Permission is hereby granted, free of charge, to any person obtaining
6
- // a copy of this software and associated documentation files (the
7
- // "Software"), to deal in the Software without restriction, including
8
- // without limitation the rights to use, copy, modify, merge, publish,
9
- // distribute, sublicense, and/or sell copies of the Software, and to
10
- // permit persons to whom the Software is furnished to do so, subject to
11
- // the following conditions:
12
- //
13
- // The above copyright notice and this permission notice shall be
14
- // included in all copies or substantial portions of the Software.
15
- //
16
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
-
24
- if(!Control) var Control = {};
25
- Control.Slider = Class.create();
26
-
27
- // options:
28
- // axis: 'vertical', or 'horizontal' (default)
29
- //
30
- // callbacks:
31
- // onChange(value)
32
- // onSlide(value)
33
- Control.Slider.prototype = {
34
- initialize: function(handle, track, options) {
35
- var slider = this;
36
-
37
- if(handle instanceof Array) {
38
- this.handles = handle.collect( function(e) { return $(e) });
39
- } else {
40
- this.handles = [$(handle)];
41
- }
42
-
43
- this.track = $(track);
44
- this.options = options || {};
45
-
46
- this.axis = this.options.axis || 'horizontal';
47
- this.increment = this.options.increment || 1;
48
- this.step = parseInt(this.options.step || '1');
49
- this.range = this.options.range || $R(0,1);
50
-
51
- this.value = 0; // assure backwards compat
52
- this.values = this.handles.map( function() { return 0 });
53
- this.spans = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;
54
- this.options.startSpan = $(this.options.startSpan || null);
55
- this.options.endSpan = $(this.options.endSpan || null);
56
-
57
- this.restricted = this.options.restricted || false;
58
-
59
- this.maximum = this.options.maximum || this.range.end;
60
- this.minimum = this.options.minimum || this.range.start;
61
-
62
- // Will be used to align the handle onto the track, if necessary
63
- this.alignX = parseInt(this.options.alignX || '0');
64
- this.alignY = parseInt(this.options.alignY || '0');
65
-
66
- this.trackLength = this.maximumOffset() - this.minimumOffset();
67
- this.handleLength = this.isVertical() ? this.handles[0].offsetHeight : this.handles[0].offsetWidth;
68
-
69
- this.active = false;
70
- this.dragging = false;
71
- this.disabled = false;
72
-
73
- if(this.options.disabled) this.setDisabled();
74
-
75
- // Allowed values array
76
- this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
77
- if(this.allowedValues) {
78
- this.minimum = this.allowedValues.min();
79
- this.maximum = this.allowedValues.max();
80
- }
81
-
82
- this.eventMouseDown = this.startDrag.bindAsEventListener(this);
83
- this.eventMouseUp = this.endDrag.bindAsEventListener(this);
84
- this.eventMouseMove = this.update.bindAsEventListener(this);
85
-
86
- // Initialize handles in reverse (make sure first handle is active)
87
- this.handles.each( function(h,i) {
88
- i = slider.handles.length-1-i;
89
- slider.setValue(parseFloat(
90
- (slider.options.sliderValue instanceof Array ?
91
- slider.options.sliderValue[i] : slider.options.sliderValue) ||
92
- slider.range.start), i);
93
- Element.makePositioned(h); // fix IE
94
- Event.observe(h, "mousedown", slider.eventMouseDown);
95
- });
96
-
97
- Event.observe(this.track, "mousedown", this.eventMouseDown);
98
- Event.observe(document, "mouseup", this.eventMouseUp);
99
- Event.observe(document, "mousemove", this.eventMouseMove);
100
-
101
- this.initialized = true;
102
- },
103
- dispose: function() {
104
- var slider = this;
105
- Event.stopObserving(this.track, "mousedown", this.eventMouseDown);
106
- Event.stopObserving(document, "mouseup", this.eventMouseUp);
107
- Event.stopObserving(document, "mousemove", this.eventMouseMove);
108
- this.handles.each( function(h) {
109
- Event.stopObserving(h, "mousedown", slider.eventMouseDown);
110
- });
111
- },
112
- setDisabled: function(){
113
- this.disabled = true;
114
- },
115
- setEnabled: function(){
116
- this.disabled = false;
117
- },
118
- getNearestValue: function(value){
119
- if(this.allowedValues){
120
- if(value >= this.allowedValues.max()) return(this.allowedValues.max());
121
- if(value <= this.allowedValues.min()) return(this.allowedValues.min());
122
-
123
- var offset = Math.abs(this.allowedValues[0] - value);
124
- var newValue = this.allowedValues[0];
125
- this.allowedValues.each( function(v) {
126
- var currentOffset = Math.abs(v - value);
127
- if(currentOffset <= offset){
128
- newValue = v;
129
- offset = currentOffset;
130
- }
131
- });
132
- return newValue;
133
- }
134
- if(value > this.range.end) return this.range.end;
135
- if(value < this.range.start) return this.range.start;
136
- return value;
137
- },
138
- setValue: function(sliderValue, handleIdx){
139
- if(!this.active) {
140
- this.activeHandle = this.handles[handleIdx];
141
- this.activeHandleIdx = handleIdx;
142
- this.updateStyles();
143
- }
144
- handleIdx = handleIdx || this.activeHandleIdx || 0;
145
- if(this.initialized && this.restricted) {
146
- if((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
147
- sliderValue = this.values[handleIdx-1];
148
- if((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
149
- sliderValue = this.values[handleIdx+1];
150
- }
151
- sliderValue = this.getNearestValue(sliderValue);
152
- this.values[handleIdx] = sliderValue;
153
- this.value = this.values[0]; // assure backwards compat
154
-
155
- this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] =
156
- this.translateToPx(sliderValue);
157
-
158
- this.drawSpans();
159
- if(!this.dragging || !this.event) this.updateFinished();
160
- },
161
- setValueBy: function(delta, handleIdx) {
162
- this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
163
- handleIdx || this.activeHandleIdx || 0);
164
- },
165
- translateToPx: function(value) {
166
- return Math.round(
167
- ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) *
168
- (value - this.range.start)) + "px";
169
- },
170
- translateToValue: function(offset) {
171
- return ((offset/(this.trackLength-this.handleLength) *
172
- (this.range.end-this.range.start)) + this.range.start);
173
- },
174
- getRange: function(range) {
175
- var v = this.values.sortBy(Prototype.K);
176
- range = range || 0;
177
- return $R(v[range],v[range+1]);
178
- },
179
- minimumOffset: function(){
180
- return(this.isVertical() ? this.alignY : this.alignX);
181
- },
182
- maximumOffset: function(){
183
- return(this.isVertical() ?
184
- this.track.offsetHeight - this.alignY : this.track.offsetWidth - this.alignX);
185
- },
186
- isVertical: function(){
187
- return (this.axis == 'vertical');
188
- },
189
- drawSpans: function() {
190
- var slider = this;
191
- if(this.spans)
192
- $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
193
- if(this.options.startSpan)
194
- this.setSpan(this.options.startSpan,
195
- $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
196
- if(this.options.endSpan)
197
- this.setSpan(this.options.endSpan,
198
- $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
199
- },
200
- setSpan: function(span, range) {
201
- if(this.isVertical()) {
202
- span.style.top = this.translateToPx(range.start);
203
- span.style.height = this.translateToPx(range.end - range.start + this.range.start);
204
- } else {
205
- span.style.left = this.translateToPx(range.start);
206
- span.style.width = this.translateToPx(range.end - range.start + this.range.start);
207
- }
208
- },
209
- updateStyles: function() {
210
- this.handles.each( function(h){ Element.removeClassName(h, 'selected') });
211
- Element.addClassName(this.activeHandle, 'selected');
212
- },
213
- startDrag: function(event) {
214
- if(Event.isLeftClick(event)) {
215
- if(!this.disabled){
216
- this.active = true;
217
-
218
- var handle = Event.element(event);
219
- var pointer = [Event.pointerX(event), Event.pointerY(event)];
220
- if(handle==this.track) {
221
- var offsets = Position.cumulativeOffset(this.track);
222
- this.event = event;
223
- this.setValue(this.translateToValue(
224
- (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)
225
- ));
226
- var offsets = Position.cumulativeOffset(this.activeHandle);
227
- this.offsetX = (pointer[0] - offsets[0]);
228
- this.offsetY = (pointer[1] - offsets[1]);
229
- } else {
230
- // find the handle (prevents issues with Safari)
231
- while((this.handles.indexOf(handle) == -1) && handle.parentNode)
232
- handle = handle.parentNode;
233
-
234
- this.activeHandle = handle;
235
- this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
236
- this.updateStyles();
237
-
238
- var offsets = Position.cumulativeOffset(this.activeHandle);
239
- this.offsetX = (pointer[0] - offsets[0]);
240
- this.offsetY = (pointer[1] - offsets[1]);
241
- }
242
- }
243
- Event.stop(event);
244
- }
245
- },
246
- update: function(event) {
247
- if(this.active) {
248
- if(!this.dragging) this.dragging = true;
249
- this.draw(event);
250
- // fix AppleWebKit rendering
251
- if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
252
- Event.stop(event);
253
- }
254
- },
255
- draw: function(event) {
256
- var pointer = [Event.pointerX(event), Event.pointerY(event)];
257
- var offsets = Position.cumulativeOffset(this.track);
258
- pointer[0] -= this.offsetX + offsets[0];
259
- pointer[1] -= this.offsetY + offsets[1];
260
- this.event = event;
261
- this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
262
- if(this.initialized && this.options.onSlide)
263
- this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
264
- },
265
- endDrag: function(event) {
266
- if(this.active && this.dragging) {
267
- this.finishDrag(event, true);
268
- Event.stop(event);
269
- }
270
- this.active = false;
271
- this.dragging = false;
272
- },
273
- finishDrag: function(event, success) {
274
- this.active = false;
275
- this.dragging = false;
276
- this.updateFinished();
277
- },
278
- updateFinished: function() {
279
- if(this.initialized && this.options.onChange)
280
- this.options.onChange(this.values.length>1 ? this.values : this.value, this);
281
- this.event = null;
282
- }
283
- }
@@ -1,383 +0,0 @@
1
- // Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
2
- // (c) 2005 Jon Tirsen (http://www.tirsen.com)
3
- // (c) 2005 Michael Schuerig (http://www.schuerig.de/michael/)
4
- //
5
- // Permission is hereby granted, free of charge, to any person obtaining
6
- // a copy of this software and associated documentation files (the
7
- // "Software"), to deal in the Software without restriction, including
8
- // without limitation the rights to use, copy, modify, merge, publish,
9
- // distribute, sublicense, and/or sell copies of the Software, and to
10
- // permit persons to whom the Software is furnished to do so, subject to
11
- // the following conditions:
12
- //
13
- // The above copyright notice and this permission notice shall be
14
- // included in all copies or substantial portions of the Software.
15
- //
16
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
-
24
-
25
- // experimental, Firefox-only
26
- Event.simulateMouse = function(element, eventName) {
27
- var options = Object.extend({
28
- pointerX: 0,
29
- pointerY: 0,
30
- buttons: 0
31
- }, arguments[2] || {});
32
- var oEvent = document.createEvent("MouseEvents");
33
- oEvent.initMouseEvent(eventName, true, true, document.defaultView,
34
- options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
35
- false, false, false, false, 0, $(element));
36
-
37
- if(this.mark) Element.remove(this.mark);
38
- this.mark = document.createElement('div');
39
- this.mark.appendChild(document.createTextNode(" "));
40
- document.body.appendChild(this.mark);
41
- this.mark.style.position = 'absolute';
42
- this.mark.style.top = options.pointerY + "px";
43
- this.mark.style.left = options.pointerX + "px";
44
- this.mark.style.width = "5px";
45
- this.mark.style.height = "5px;";
46
- this.mark.style.borderTop = "1px solid red;"
47
- this.mark.style.borderLeft = "1px solid red;"
48
-
49
- if(this.step)
50
- alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
51
-
52
- $(element).dispatchEvent(oEvent);
53
- };
54
-
55
- // Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
56
- // You need to downgrade to 1.0.4 for now to get this working
57
- // See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
58
- Event.simulateKey = function(element, eventName) {
59
- var options = Object.extend({
60
- ctrlKey: false,
61
- altKey: false,
62
- shiftKey: false,
63
- metaKey: false,
64
- keyCode: 0,
65
- charCode: 0
66
- }, arguments[2] || {});
67
-
68
- var oEvent = document.createEvent("KeyEvents");
69
- oEvent.initKeyEvent(eventName, true, true, window,
70
- options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
71
- options.keyCode, options.charCode );
72
- $(element).dispatchEvent(oEvent);
73
- };
74
-
75
- Event.simulateKeys = function(element, command) {
76
- for(var i=0; i<command.length; i++) {
77
- Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
78
- }
79
- };
80
-
81
- var Test = {}
82
- Test.Unit = {};
83
-
84
- // security exception workaround
85
- Test.Unit.inspect = Object.inspect;
86
-
87
- Test.Unit.Logger = Class.create();
88
- Test.Unit.Logger.prototype = {
89
- initialize: function(log) {
90
- this.log = $(log);
91
- if (this.log) {
92
- this._createLogTable();
93
- }
94
- },
95
- start: function(testName) {
96
- if (!this.log) return;
97
- this.testName = testName;
98
- this.lastLogLine = document.createElement('tr');
99
- this.statusCell = document.createElement('td');
100
- this.nameCell = document.createElement('td');
101
- this.nameCell.appendChild(document.createTextNode(testName));
102
- this.messageCell = document.createElement('td');
103
- this.lastLogLine.appendChild(this.statusCell);
104
- this.lastLogLine.appendChild(this.nameCell);
105
- this.lastLogLine.appendChild(this.messageCell);
106
- this.loglines.appendChild(this.lastLogLine);
107
- },
108
- finish: function(status, summary) {
109
- if (!this.log) return;
110
- this.lastLogLine.className = status;
111
- this.statusCell.innerHTML = status;
112
- this.messageCell.innerHTML = this._toHTML(summary);
113
- },
114
- message: function(message) {
115
- if (!this.log) return;
116
- this.messageCell.innerHTML = this._toHTML(message);
117
- },
118
- summary: function(summary) {
119
- if (!this.log) return;
120
- this.logsummary.innerHTML = this._toHTML(summary);
121
- },
122
- _createLogTable: function() {
123
- this.log.innerHTML =
124
- '<div id="logsummary"></div>' +
125
- '<table id="logtable">' +
126
- '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
127
- '<tbody id="loglines"></tbody>' +
128
- '</table>';
129
- this.logsummary = $('logsummary')
130
- this.loglines = $('loglines');
131
- },
132
- _toHTML: function(txt) {
133
- return txt.escapeHTML().replace(/\n/g,"<br/>");
134
- }
135
- }
136
-
137
- Test.Unit.Runner = Class.create();
138
- Test.Unit.Runner.prototype = {
139
- initialize: function(testcases) {
140
- this.options = Object.extend({
141
- testLog: 'testlog'
142
- }, arguments[1] || {});
143
- this.options.resultsURL = this.parseResultsURLQueryParameter();
144
- if (this.options.testLog) {
145
- this.options.testLog = $(this.options.testLog) || null;
146
- }
147
- if(this.options.tests) {
148
- this.tests = [];
149
- for(var i = 0; i < this.options.tests.length; i++) {
150
- if(/^test/.test(this.options.tests[i])) {
151
- this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
152
- }
153
- }
154
- } else {
155
- if (this.options.test) {
156
- this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
157
- } else {
158
- this.tests = [];
159
- for(var testcase in testcases) {
160
- if(/^test/.test(testcase)) {
161
- this.tests.push(new Test.Unit.Testcase(testcase, testcases[testcase], testcases["setup"], testcases["teardown"]));
162
- }
163
- }
164
- }
165
- }
166
- this.currentTest = 0;
167
- this.logger = new Test.Unit.Logger(this.options.testLog);
168
- setTimeout(this.runTests.bind(this), 1000);
169
- },
170
- parseResultsURLQueryParameter: function() {
171
- return window.location.search.parseQuery()["resultsURL"];
172
- },
173
- // Returns:
174
- // "ERROR" if there was an error,
175
- // "FAILURE" if there was a failure, or
176
- // "SUCCESS" if there was neither
177
- getResult: function() {
178
- var hasFailure = false;
179
- for(var i=0;i<this.tests.length;i++) {
180
- if (this.tests[i].errors > 0) {
181
- return "ERROR";
182
- }
183
- if (this.tests[i].failures > 0) {
184
- hasFailure = true;
185
- }
186
- }
187
- if (hasFailure) {
188
- return "FAILURE";
189
- } else {
190
- return "SUCCESS";
191
- }
192
- },
193
- postResults: function() {
194
- if (this.options.resultsURL) {
195
- new Ajax.Request(this.options.resultsURL,
196
- { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
197
- }
198
- },
199
- runTests: function() {
200
- var test = this.tests[this.currentTest];
201
- if (!test) {
202
- // finished!
203
- this.postResults();
204
- this.logger.summary(this.summary());
205
- return;
206
- }
207
- if(!test.isWaiting) {
208
- this.logger.start(test.name);
209
- }
210
- test.run();
211
- if(test.isWaiting) {
212
- this.logger.message("Waiting for " + test.timeToWait + "ms");
213
- setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
214
- } else {
215
- this.logger.finish(test.status(), test.summary());
216
- this.currentTest++;
217
- // tail recursive, hopefully the browser will skip the stackframe
218
- this.runTests();
219
- }
220
- },
221
- summary: function() {
222
- var assertions = 0;
223
- var failures = 0;
224
- var errors = 0;
225
- var messages = [];
226
- for(var i=0;i<this.tests.length;i++) {
227
- assertions += this.tests[i].assertions;
228
- failures += this.tests[i].failures;
229
- errors += this.tests[i].errors;
230
- }
231
- return (
232
- this.tests.length + " tests, " +
233
- assertions + " assertions, " +
234
- failures + " failures, " +
235
- errors + " errors");
236
- }
237
- }
238
-
239
- Test.Unit.Assertions = Class.create();
240
- Test.Unit.Assertions.prototype = {
241
- initialize: function() {
242
- this.assertions = 0;
243
- this.failures = 0;
244
- this.errors = 0;
245
- this.messages = [];
246
- },
247
- summary: function() {
248
- return (
249
- this.assertions + " assertions, " +
250
- this.failures + " failures, " +
251
- this.errors + " errors" + "\n" +
252
- this.messages.join("\n"));
253
- },
254
- pass: function() {
255
- this.assertions++;
256
- },
257
- fail: function(message) {
258
- this.failures++;
259
- this.messages.push("Failure: " + message);
260
- },
261
- info: function(message) {
262
- this.messages.push("Info: " + message);
263
- },
264
- error: function(error) {
265
- this.errors++;
266
- this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
267
- },
268
- status: function() {
269
- if (this.failures > 0) return 'failed';
270
- if (this.errors > 0) return 'error';
271
- return 'passed';
272
- },
273
- assert: function(expression) {
274
- var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
275
- try { expression ? this.pass() :
276
- this.fail(message); }
277
- catch(e) { this.error(e); }
278
- },
279
- assertEqual: function(expected, actual) {
280
- var message = arguments[2] || "assertEqual";
281
- try { (expected == actual) ? this.pass() :
282
- this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
283
- '", actual "' + Test.Unit.inspect(actual) + '"'); }
284
- catch(e) { this.error(e); }
285
- },
286
- assertEnumEqual: function(expected, actual) {
287
- var message = arguments[2] || "assertEnumEqual";
288
- try { $A(expected).length == $A(actual).length &&
289
- expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
290
- this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) +
291
- ', actual ' + Test.Unit.inspect(actual)); }
292
- catch(e) { this.error(e); }
293
- },
294
- assertNotEqual: function(expected, actual) {
295
- var message = arguments[2] || "assertNotEqual";
296
- try { (expected != actual) ? this.pass() :
297
- this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
298
- catch(e) { this.error(e); }
299
- },
300
- assertNull: function(obj) {
301
- var message = arguments[1] || 'assertNull'
302
- try { (obj==null) ? this.pass() :
303
- this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
304
- catch(e) { this.error(e); }
305
- },
306
- assertHidden: function(element) {
307
- var message = arguments[1] || 'assertHidden';
308
- this.assertEqual("none", element.style.display, message);
309
- },
310
- assertNotNull: function(object) {
311
- var message = arguments[1] || 'assertNotNull';
312
- this.assert(object != null, message);
313
- },
314
- assertInstanceOf: function(expected, actual) {
315
- var message = arguments[2] || 'assertInstanceOf';
316
- try {
317
- (actual instanceof expected) ? this.pass() :
318
- this.fail(message + ": object was not an instance of the expected type"); }
319
- catch(e) { this.error(e); }
320
- },
321
- assertNotInstanceOf: function(expected, actual) {
322
- var message = arguments[2] || 'assertNotInstanceOf';
323
- try {
324
- !(actual instanceof expected) ? this.pass() :
325
- this.fail(message + ": object was an instance of the not expected type"); }
326
- catch(e) { this.error(e); }
327
- },
328
- _isVisible: function(element) {
329
- element = $(element);
330
- if(!element.parentNode) return true;
331
- this.assertNotNull(element);
332
- if(element.style && Element.getStyle(element, 'display') == 'none')
333
- return false;
334
-
335
- return this._isVisible(element.parentNode);
336
- },
337
- assertNotVisible: function(element) {
338
- this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
339
- },
340
- assertVisible: function(element) {
341
- this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
342
- },
343
- benchmark: function(operation, iterations) {
344
- var startAt = new Date();
345
- (iterations || 1).times(operation);
346
- var timeTaken = ((new Date())-startAt);
347
- this.info((arguments[2] || 'Operation') + ' finished ' +
348
- iterations + ' iterations in ' + (timeTaken/1000)+'s' );
349
- return timeTaken;
350
- }
351
- }
352
-
353
- Test.Unit.Testcase = Class.create();
354
- Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
355
- initialize: function(name, test, setup, teardown) {
356
- Test.Unit.Assertions.prototype.initialize.bind(this)();
357
- this.name = name;
358
- this.test = test || function() {};
359
- this.setup = setup || function() {};
360
- this.teardown = teardown || function() {};
361
- this.isWaiting = false;
362
- this.timeToWait = 1000;
363
- },
364
- wait: function(time, nextPart) {
365
- this.isWaiting = true;
366
- this.test = nextPart;
367
- this.timeToWait = time;
368
- },
369
- run: function() {
370
- try {
371
- try {
372
- if (!this.isWaiting) this.setup.bind(this)();
373
- this.isWaiting = false;
374
- this.test.bind(this)();
375
- } finally {
376
- if(!this.isWaiting) {
377
- this.teardown.bind(this)();
378
- }
379
- }
380
- }
381
- catch(e) { this.error(e); }
382
- }
383
- });