postrunner 0.0.10 → 0.0.11

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 (1225) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -3
  3. data/lib/postrunner/ActivitiesDB.rb +8 -9
  4. data/lib/postrunner/Activity.rb +7 -1
  5. data/lib/postrunner/ActivityView.rb +10 -2
  6. data/lib/postrunner/DataSources.rb +100 -0
  7. data/lib/postrunner/DeviceList.rb +40 -17
  8. data/lib/postrunner/Log.rb +25 -0
  9. data/lib/postrunner/Main.rb +9 -8
  10. data/lib/postrunner/RuntimeConfig.rb +1 -0
  11. data/lib/postrunner/TrackView.rb +39 -62
  12. data/lib/postrunner/version.rb +1 -1
  13. data/misc/openlayers/ol.css +1 -0
  14. data/misc/openlayers/ol.js +948 -0
  15. data/postrunner.gemspec +2 -2
  16. data/spec/PostRunner_spec.rb +22 -23
  17. data/spec/spec_helper.rb +34 -4
  18. metadata +11 -1214
  19. data/misc/openlayers/.gitignore +0 -7
  20. data/misc/openlayers/OpenLayers.debug.js +0 -85622
  21. data/misc/openlayers/OpenLayers.js +0 -1443
  22. data/misc/openlayers/OpenLayers.light.debug.js +0 -37230
  23. data/misc/openlayers/OpenLayers.light.js +0 -592
  24. data/misc/openlayers/OpenLayers.mobile.debug.js +0 -41831
  25. data/misc/openlayers/OpenLayers.mobile.js +0 -681
  26. data/misc/openlayers/apidoc_config/Languages.txt +0 -113
  27. data/misc/openlayers/apidoc_config/Menu.txt +0 -520
  28. data/misc/openlayers/apidoc_config/OL.css +0 -20
  29. data/misc/openlayers/apidoc_config/Topics.txt +0 -105
  30. data/misc/openlayers/art/arrows.svg +0 -127
  31. data/misc/openlayers/art/layer-switcher-maximize.svg +0 -128
  32. data/misc/openlayers/art/layer-switcher-minimize.svg +0 -142
  33. data/misc/openlayers/art/marker.svg +0 -25
  34. data/misc/openlayers/art/measuring-stick-off.svg +0 -36
  35. data/misc/openlayers/art/measuring-stick-on.svg +0 -36
  36. data/misc/openlayers/art/panning-hand-off.svg +0 -44
  37. data/misc/openlayers/art/panning-hand-on.svg +0 -44
  38. data/misc/openlayers/art/slider.svg +0 -71
  39. data/misc/openlayers/art/zoom-world.svg +0 -193
  40. data/misc/openlayers/art/zoombar.svg +0 -73
  41. data/misc/openlayers/authors.txt +0 -56
  42. data/misc/openlayers/build/README.txt +0 -46
  43. data/misc/openlayers/build/build.py +0 -158
  44. data/misc/openlayers/build/buildUncompressed.py +0 -25
  45. data/misc/openlayers/build/closure-compiler/Externs.js +0 -50
  46. data/misc/openlayers/build/full.cfg +0 -14
  47. data/misc/openlayers/build/license.txt +0 -57
  48. data/misc/openlayers/build/light.cfg +0 -32
  49. data/misc/openlayers/build/lite.cfg +0 -17
  50. data/misc/openlayers/build/mobile.cfg +0 -36
  51. data/misc/openlayers/build/tests.cfg +0 -11
  52. data/misc/openlayers/doc_config/Data/ClassHierarchy.nd +0 -0
  53. data/misc/openlayers/doc_config/Data/ConfigFileInfo.nd +0 -0
  54. data/misc/openlayers/doc_config/Data/FileInfo.nd +0 -323
  55. data/misc/openlayers/doc_config/Data/ImageFileInfo.nd +0 -0
  56. data/misc/openlayers/doc_config/Data/ImageReferenceTable.nd +0 -0
  57. data/misc/openlayers/doc_config/Data/IndexInfo.nd +0 -0
  58. data/misc/openlayers/doc_config/Data/PreviousMenuState.nd +0 -0
  59. data/misc/openlayers/doc_config/Data/PreviousSettings.nd +0 -0
  60. data/misc/openlayers/doc_config/Data/SymbolTable.nd +0 -0
  61. data/misc/openlayers/doc_config/Languages.txt +0 -113
  62. data/misc/openlayers/doc_config/Menu.txt +0 -520
  63. data/misc/openlayers/doc_config/OL.css +0 -20
  64. data/misc/openlayers/doc_config/Topics.txt +0 -102
  65. data/misc/openlayers/examples/Jugl.js +0 -8
  66. data/misc/openlayers/examples/KMLParser.html +0 -57
  67. data/misc/openlayers/examples/SLDSelect.html +0 -202
  68. data/misc/openlayers/examples/WMSDescribeLayerParser.html +0 -52
  69. data/misc/openlayers/examples/accelerometer.html +0 -100
  70. data/misc/openlayers/examples/accessible-click-control.html +0 -69
  71. data/misc/openlayers/examples/accessible-click-control.js +0 -199
  72. data/misc/openlayers/examples/accessible-panel.html +0 -130
  73. data/misc/openlayers/examples/accessible-panel.js +0 -64
  74. data/misc/openlayers/examples/accessible.html +0 -167
  75. data/misc/openlayers/examples/all-overlays-google.html +0 -34
  76. data/misc/openlayers/examples/all-overlays-google.js +0 -19
  77. data/misc/openlayers/examples/all-overlays.html +0 -76
  78. data/misc/openlayers/examples/anchor-permalink.html +0 -29
  79. data/misc/openlayers/examples/anchor-permalink.js +0 -13
  80. data/misc/openlayers/examples/animated_panning.html +0 -98
  81. data/misc/openlayers/examples/animator.js +0 -670
  82. data/misc/openlayers/examples/arcgis93rest.html +0 -69
  83. data/misc/openlayers/examples/arcgiscache_ags.html +0 -221
  84. data/misc/openlayers/examples/arcgiscache_direct.html +0 -108
  85. data/misc/openlayers/examples/arcgiscache_jsonp.html +0 -106
  86. data/misc/openlayers/examples/arcims-thematic.html +0 -82
  87. data/misc/openlayers/examples/arcims.html +0 -57
  88. data/misc/openlayers/examples/attribution.html +0 -60
  89. data/misc/openlayers/examples/behavior-fixed-http-gml.html +0 -56
  90. data/misc/openlayers/examples/bing-tiles-restrictedzoom.html +0 -43
  91. data/misc/openlayers/examples/bing-tiles-restrictedzoom.js +0 -37
  92. data/misc/openlayers/examples/bing-tiles.html +0 -39
  93. data/misc/openlayers/examples/bing-tiles.js +0 -31
  94. data/misc/openlayers/examples/bing.html +0 -64
  95. data/misc/openlayers/examples/bootstrap.html +0 -81
  96. data/misc/openlayers/examples/bootstrap.js +0 -31
  97. data/misc/openlayers/examples/boxes-vector.html +0 -59
  98. data/misc/openlayers/examples/boxes.html +0 -58
  99. data/misc/openlayers/examples/browser.html +0 -152
  100. data/misc/openlayers/examples/browser.js +0 -241
  101. data/misc/openlayers/examples/buffer.html +0 -54
  102. data/misc/openlayers/examples/cache-read.html +0 -36
  103. data/misc/openlayers/examples/cache-read.js +0 -36
  104. data/misc/openlayers/examples/cache-write.html +0 -37
  105. data/misc/openlayers/examples/cache-write.js +0 -46
  106. data/misc/openlayers/examples/canvas-hit-detection.html +0 -31
  107. data/misc/openlayers/examples/canvas-hit-detection.js +0 -88
  108. data/misc/openlayers/examples/canvas-inspector.html +0 -53
  109. data/misc/openlayers/examples/canvas-inspector.js +0 -91
  110. data/misc/openlayers/examples/canvas.html +0 -35
  111. data/misc/openlayers/examples/canvas.js +0 -57
  112. data/misc/openlayers/examples/cartodb-geojson.html +0 -71
  113. data/misc/openlayers/examples/click-handler.html +0 -232
  114. data/misc/openlayers/examples/click.html +0 -91
  115. data/misc/openlayers/examples/clientzoom.html +0 -72
  116. data/misc/openlayers/examples/clientzoom.js +0 -39
  117. data/misc/openlayers/examples/controls.html +0 -86
  118. data/misc/openlayers/examples/cql-format.html +0 -54
  119. data/misc/openlayers/examples/cql-format.js +0 -61
  120. data/misc/openlayers/examples/cross-origin-xml.html +0 -32
  121. data/misc/openlayers/examples/cross-origin-xml.js +0 -25
  122. data/misc/openlayers/examples/cross-origin.html +0 -36
  123. data/misc/openlayers/examples/cross-origin.js +0 -39
  124. data/misc/openlayers/examples/custom-control.html +0 -68
  125. data/misc/openlayers/examples/custom-style.html +0 -66
  126. data/misc/openlayers/examples/data/4_m_citylights_lg.gif +0 -0
  127. data/misc/openlayers/examples/data/line.json +0 -10
  128. data/misc/openlayers/examples/data/point.json +0 -8
  129. data/misc/openlayers/examples/data/poly.json +0 -9
  130. data/misc/openlayers/examples/data/roads.json +0 -349
  131. data/misc/openlayers/examples/data/tazdem.tiff +0 -0
  132. data/misc/openlayers/examples/debug.html +0 -77
  133. data/misc/openlayers/examples/document-drag.html +0 -43
  134. data/misc/openlayers/examples/donut.html +0 -62
  135. data/misc/openlayers/examples/donut.js +0 -44
  136. data/misc/openlayers/examples/drag-feature.html +0 -114
  137. data/misc/openlayers/examples/draw-feature.html +0 -143
  138. data/misc/openlayers/examples/draw-undo-redo.html +0 -38
  139. data/misc/openlayers/examples/draw-undo-redo.js +0 -45
  140. data/misc/openlayers/examples/dynamic-text-layer.html +0 -101
  141. data/misc/openlayers/examples/editing-methods.html +0 -58
  142. data/misc/openlayers/examples/editing-methods.js +0 -83
  143. data/misc/openlayers/examples/editingtoolbar-outside.html +0 -56
  144. data/misc/openlayers/examples/editingtoolbar.html +0 -55
  145. data/misc/openlayers/examples/encoded-polyline.html +0 -47
  146. data/misc/openlayers/examples/events.html +0 -155
  147. data/misc/openlayers/examples/example-list.html +0 -302
  148. data/misc/openlayers/examples/example.html +0 -25
  149. data/misc/openlayers/examples/example.js +0 -23
  150. data/misc/openlayers/examples/feature-events.html +0 -46
  151. data/misc/openlayers/examples/feature-events.js +0 -67
  152. data/misc/openlayers/examples/filter-strategy.html +0 -54
  153. data/misc/openlayers/examples/filter-strategy.js +0 -84
  154. data/misc/openlayers/examples/filter.html +0 -107
  155. data/misc/openlayers/examples/fractional-zoom.html +0 -72
  156. data/misc/openlayers/examples/fullScreen.html +0 -53
  157. data/misc/openlayers/examples/fullScreen.js +0 -20
  158. data/misc/openlayers/examples/fusiontables.html +0 -35
  159. data/misc/openlayers/examples/fusiontables.js +0 -51
  160. data/misc/openlayers/examples/game-accel-ball.html +0 -82
  161. data/misc/openlayers/examples/geojson-reprojected.html +0 -46
  162. data/misc/openlayers/examples/geojson-reprojected.js +0 -27
  163. data/misc/openlayers/examples/geojson-reprojected.json +0 -1
  164. data/misc/openlayers/examples/geojson.html +0 -77
  165. data/misc/openlayers/examples/geolocation.html +0 -41
  166. data/misc/openlayers/examples/geolocation.js +0 -112
  167. data/misc/openlayers/examples/georss-flickr.html +0 -119
  168. data/misc/openlayers/examples/georss-markers.html +0 -45
  169. data/misc/openlayers/examples/georss.html +0 -63
  170. data/misc/openlayers/examples/georss.xml +0 -378
  171. data/misc/openlayers/examples/getfeature-wfs.html +0 -84
  172. data/misc/openlayers/examples/getfeatureinfo-control.html +0 -221
  173. data/misc/openlayers/examples/getfeatureinfo-popup.html +0 -96
  174. data/misc/openlayers/examples/gml-layer.html +0 -48
  175. data/misc/openlayers/examples/gml/line.xml +0 -42
  176. data/misc/openlayers/examples/gml/multipoint.xml +0 -70
  177. data/misc/openlayers/examples/gml/multipolygon.xml +0 -106
  178. data/misc/openlayers/examples/gml/owls.xml +0 -156
  179. data/misc/openlayers/examples/gml/point.xml +0 -42
  180. data/misc/openlayers/examples/gml/polygon.xml +0 -89
  181. data/misc/openlayers/examples/google-static.html +0 -39
  182. data/misc/openlayers/examples/google-static.js +0 -61
  183. data/misc/openlayers/examples/google-v3-alloverlays.html +0 -33
  184. data/misc/openlayers/examples/google-v3-alloverlays.js +0 -35
  185. data/misc/openlayers/examples/google-v3.html +0 -35
  186. data/misc/openlayers/examples/google-v3.js +0 -39
  187. data/misc/openlayers/examples/google.html +0 -69
  188. data/misc/openlayers/examples/graphic-name.html +0 -42
  189. data/misc/openlayers/examples/graphic-name.js +0 -67
  190. data/misc/openlayers/examples/graticule.html +0 -116
  191. data/misc/openlayers/examples/gutter.html +0 -55
  192. data/misc/openlayers/examples/highlight-feature.html +0 -88
  193. data/misc/openlayers/examples/hover-handler.html +0 -216
  194. data/misc/openlayers/examples/image-layer.html +0 -76
  195. data/misc/openlayers/examples/img/check-round-green.png +0 -0
  196. data/misc/openlayers/examples/img/check-round-grey.png +0 -0
  197. data/misc/openlayers/examples/img/list.png +0 -0
  198. data/misc/openlayers/examples/img/locate.png +0 -0
  199. data/misc/openlayers/examples/img/marker_shadow.png +0 -0
  200. data/misc/openlayers/examples/img/minus1.png +0 -0
  201. data/misc/openlayers/examples/img/mobile-layers.png +0 -0
  202. data/misc/openlayers/examples/img/mobile-loc.png +0 -0
  203. data/misc/openlayers/examples/img/mobile-zoombar.png +0 -0
  204. data/misc/openlayers/examples/img/openlayers.png +0 -0
  205. data/misc/openlayers/examples/img/popupMatrix.jpg +0 -0
  206. data/misc/openlayers/examples/img/small.jpg +0 -0
  207. data/misc/openlayers/examples/img/thinlong.jpg +0 -0
  208. data/misc/openlayers/examples/img/widelong.jpg +0 -0
  209. data/misc/openlayers/examples/img/wideshort.jpg +0 -0
  210. data/misc/openlayers/examples/intersects.html +0 -193
  211. data/misc/openlayers/examples/kamap.html +0 -45
  212. data/misc/openlayers/examples/kamap.txt +0 -508
  213. data/misc/openlayers/examples/kinetic.html +0 -44
  214. data/misc/openlayers/examples/kinetic.js +0 -27
  215. data/misc/openlayers/examples/kml-layer.html +0 -36
  216. data/misc/openlayers/examples/kml-layer.js +0 -22
  217. data/misc/openlayers/examples/kml-pointtrack.html +0 -40
  218. data/misc/openlayers/examples/kml-pointtrack.js +0 -52
  219. data/misc/openlayers/examples/kml-track.html +0 -42
  220. data/misc/openlayers/examples/kml-track.js +0 -40
  221. data/misc/openlayers/examples/kml-track.kml +0 -3359
  222. data/misc/openlayers/examples/kml/lines.kml +0 -275
  223. data/misc/openlayers/examples/kml/styles.kml +0 -21
  224. data/misc/openlayers/examples/kml/sundials.kml +0 -2273
  225. data/misc/openlayers/examples/label-scale.html +0 -34
  226. data/misc/openlayers/examples/label-scale.js +0 -72
  227. data/misc/openlayers/examples/late-render.html +0 -48
  228. data/misc/openlayers/examples/layer-opacity.html +0 -95
  229. data/misc/openlayers/examples/layerLoadMonitoring.html +0 -135
  230. data/misc/openlayers/examples/layerswitcher.html +0 -60
  231. data/misc/openlayers/examples/light-basic.html +0 -35
  232. data/misc/openlayers/examples/light-basic.js +0 -67
  233. data/misc/openlayers/examples/lite.html +0 -39
  234. data/misc/openlayers/examples/mapbox.html +0 -30
  235. data/misc/openlayers/examples/mapbox.js +0 -21
  236. data/misc/openlayers/examples/mapguide.html +0 -155
  237. data/misc/openlayers/examples/mapquest.html +0 -28
  238. data/misc/openlayers/examples/mapquest.js +0 -36
  239. data/misc/openlayers/examples/mapserver.html +0 -41
  240. data/misc/openlayers/examples/mapserver_untiled.html +0 -43
  241. data/misc/openlayers/examples/marker-shadow.html +0 -152
  242. data/misc/openlayers/examples/markerResize.html +0 -60
  243. data/misc/openlayers/examples/markers.html +0 -59
  244. data/misc/openlayers/examples/markersTextLayer.html +0 -41
  245. data/misc/openlayers/examples/measure.html +0 -203
  246. data/misc/openlayers/examples/mobile-base.js +0 -167
  247. data/misc/openlayers/examples/mobile-drawing.html +0 -52
  248. data/misc/openlayers/examples/mobile-drawing.js +0 -71
  249. data/misc/openlayers/examples/mobile-jq.html +0 -76
  250. data/misc/openlayers/examples/mobile-jq.js +0 -159
  251. data/misc/openlayers/examples/mobile-layers.html +0 -62
  252. data/misc/openlayers/examples/mobile-layers.js +0 -71
  253. data/misc/openlayers/examples/mobile-navigation.html +0 -52
  254. data/misc/openlayers/examples/mobile-navigation.js +0 -24
  255. data/misc/openlayers/examples/mobile-sencha.html +0 -184
  256. data/misc/openlayers/examples/mobile-sencha.js +0 -198
  257. data/misc/openlayers/examples/mobile-wmts-vienna.css +0 -205
  258. data/misc/openlayers/examples/mobile-wmts-vienna.html +0 -27
  259. data/misc/openlayers/examples/mobile-wmts-vienna.js +0 -281
  260. data/misc/openlayers/examples/mobile.html +0 -56
  261. data/misc/openlayers/examples/mobile.js +0 -39
  262. data/misc/openlayers/examples/modify-feature.html +0 -193
  263. data/misc/openlayers/examples/mouse-position.html +0 -67
  264. data/misc/openlayers/examples/mousewheel-interval.html +0 -63
  265. data/misc/openlayers/examples/multiserver.html +0 -52
  266. data/misc/openlayers/examples/multitouch.html +0 -28
  267. data/misc/openlayers/examples/mvs.html +0 -129
  268. data/misc/openlayers/examples/navigation-control.html +0 -44
  269. data/misc/openlayers/examples/navigation-history.html +0 -62
  270. data/misc/openlayers/examples/navtoolbar-alwaysZoom.html +0 -85
  271. data/misc/openlayers/examples/navtoolbar-outsidemap.html +0 -47
  272. data/misc/openlayers/examples/navtoolbar.html +0 -46
  273. data/misc/openlayers/examples/offline-storage.html +0 -44
  274. data/misc/openlayers/examples/offline-storage.js +0 -199
  275. data/misc/openlayers/examples/openls.html +0 -88
  276. data/misc/openlayers/examples/ordering.html +0 -221
  277. data/misc/openlayers/examples/osm-google.html +0 -32
  278. data/misc/openlayers/examples/osm-google.js +0 -23
  279. data/misc/openlayers/examples/osm-grayscale.html +0 -77
  280. data/misc/openlayers/examples/osm-marker-popup.html +0 -32
  281. data/misc/openlayers/examples/osm-marker-popup.js +0 -39
  282. data/misc/openlayers/examples/osm.html +0 -41
  283. data/misc/openlayers/examples/osm/sutton_coldfield.osm +0 -662
  284. data/misc/openlayers/examples/overviewmap.html +0 -120
  285. data/misc/openlayers/examples/pan-zoom-panels.html +0 -97
  286. data/misc/openlayers/examples/panel.html +0 -99
  287. data/misc/openlayers/examples/point-grid.html +0 -75
  288. data/misc/openlayers/examples/point-grid.js +0 -33
  289. data/misc/openlayers/examples/point-track-markers.html +0 -72
  290. data/misc/openlayers/examples/polar-projections.html +0 -41
  291. data/misc/openlayers/examples/polar-projections.js +0 -84
  292. data/misc/openlayers/examples/popupMatrix.html +0 -652
  293. data/misc/openlayers/examples/proxy.cgi +0 -81
  294. data/misc/openlayers/examples/regular-polygons.html +0 -177
  295. data/misc/openlayers/examples/resize-features.html +0 -101
  296. data/misc/openlayers/examples/restricted-extent.html +0 -77
  297. data/misc/openlayers/examples/rotate-features.html +0 -113
  298. data/misc/openlayers/examples/select-feature-multilayer.html +0 -129
  299. data/misc/openlayers/examples/select-feature-openpopup.html +0 -106
  300. data/misc/openlayers/examples/select-feature.html +0 -170
  301. data/misc/openlayers/examples/setextent.html +0 -39
  302. data/misc/openlayers/examples/simplify-linestring.html +0 -103
  303. data/misc/openlayers/examples/simplify-linestring.js +0 -599
  304. data/misc/openlayers/examples/single-tile.html +0 -33
  305. data/misc/openlayers/examples/single-tile.js +0 -20
  306. data/misc/openlayers/examples/sld-parser.html +0 -70
  307. data/misc/openlayers/examples/sld.html +0 -31
  308. data/misc/openlayers/examples/sld.js +0 -102
  309. data/misc/openlayers/examples/snap-grid.html +0 -78
  310. data/misc/openlayers/examples/snap-grid.js +0 -81
  311. data/misc/openlayers/examples/snap-split.html +0 -281
  312. data/misc/openlayers/examples/snapping.html +0 -324
  313. data/misc/openlayers/examples/sos.html +0 -189
  314. data/misc/openlayers/examples/spherical-mercator.html +0 -120
  315. data/misc/openlayers/examples/split-feature.html +0 -116
  316. data/misc/openlayers/examples/strategy-bbox.html +0 -106
  317. data/misc/openlayers/examples/strategy-cluster-extended.html +0 -125
  318. data/misc/openlayers/examples/strategy-cluster-extended.js +0 -247
  319. data/misc/openlayers/examples/strategy-cluster-threshold.html +0 -149
  320. data/misc/openlayers/examples/strategy-cluster.html +0 -238
  321. data/misc/openlayers/examples/strategy-paging.html +0 -115
  322. data/misc/openlayers/examples/style-rules.html +0 -49
  323. data/misc/openlayers/examples/style-rules.js +0 -99
  324. data/misc/openlayers/examples/style.css +0 -143
  325. data/misc/openlayers/examples/style.mobile-jq.css +0 -62
  326. data/misc/openlayers/examples/stylemap.html +0 -100
  327. data/misc/openlayers/examples/styles-context.html +0 -117
  328. data/misc/openlayers/examples/styles-rotation.html +0 -93
  329. data/misc/openlayers/examples/styles-unique.html +0 -109
  330. data/misc/openlayers/examples/sundials-spherical-mercator.html +0 -111
  331. data/misc/openlayers/examples/sundials.html +0 -107
  332. data/misc/openlayers/examples/symbolizers-fill-stroke-graphic.html +0 -141
  333. data/misc/openlayers/examples/tasmania/TasmaniaCities.xml +0 -40
  334. data/misc/openlayers/examples/tasmania/TasmaniaRoads.xml +0 -204
  335. data/misc/openlayers/examples/tasmania/TasmaniaStateBoundaries.xml +0 -92
  336. data/misc/openlayers/examples/tasmania/TasmaniaWaterBodies.xml +0 -162
  337. data/misc/openlayers/examples/tasmania/sld-tasmania.xml +0 -594
  338. data/misc/openlayers/examples/teleportation.html +0 -76
  339. data/misc/openlayers/examples/textfile.txt +0 -4
  340. data/misc/openlayers/examples/tile-origin.html +0 -38
  341. data/misc/openlayers/examples/tile-origin.js +0 -16
  342. data/misc/openlayers/examples/tilecache.html +0 -58
  343. data/misc/openlayers/examples/tms.html +0 -62
  344. data/misc/openlayers/examples/transform-feature.html +0 -123
  345. data/misc/openlayers/examples/transition.html +0 -70
  346. data/misc/openlayers/examples/using-proj4js.html +0 -109
  347. data/misc/openlayers/examples/using-proj4js.js +0 -132
  348. data/misc/openlayers/examples/utfgrid-geography-class.html +0 -51
  349. data/misc/openlayers/examples/utfgrid-geography-class.js +0 -62
  350. data/misc/openlayers/examples/utfgrid.html +0 -64
  351. data/misc/openlayers/examples/utfgrid.js +0 -61
  352. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/0.json +0 -1
  353. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/1.json +0 -1
  354. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/2.json +0 -1
  355. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/0.json +0 -1
  356. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/1.json +0 -1
  357. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/2.json +0 -1
  358. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/0.json +0 -1
  359. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/1.json +0 -1
  360. data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/2.json +0 -1
  361. data/misc/openlayers/examples/utfgrid/geography-class/0/0/0.grid.json +0 -1
  362. data/misc/openlayers/examples/utfgrid/geography-class/1/0/0.grid.json +0 -1
  363. data/misc/openlayers/examples/utfgrid/geography-class/1/0/1.grid.json +0 -1
  364. data/misc/openlayers/examples/utfgrid/geography-class/1/1/0.grid.json +0 -1
  365. data/misc/openlayers/examples/utfgrid/geography-class/1/1/1.grid.json +0 -1
  366. data/misc/openlayers/examples/utfgrid/geography-class/2/0/0.grid.json +0 -1
  367. data/misc/openlayers/examples/utfgrid/geography-class/2/0/1.grid.json +0 -1
  368. data/misc/openlayers/examples/utfgrid/geography-class/2/0/2.grid.json +0 -1
  369. data/misc/openlayers/examples/utfgrid/geography-class/2/0/3.grid.json +0 -1
  370. data/misc/openlayers/examples/utfgrid/geography-class/2/1/0.grid.json +0 -1
  371. data/misc/openlayers/examples/utfgrid/geography-class/2/1/1.grid.json +0 -1
  372. data/misc/openlayers/examples/utfgrid/geography-class/2/1/2.grid.json +0 -1
  373. data/misc/openlayers/examples/utfgrid/geography-class/2/1/3.grid.json +0 -1
  374. data/misc/openlayers/examples/utfgrid/geography-class/2/2/0.grid.json +0 -1
  375. data/misc/openlayers/examples/utfgrid/geography-class/2/2/1.grid.json +0 -1
  376. data/misc/openlayers/examples/utfgrid/geography-class/2/2/2.grid.json +0 -1
  377. data/misc/openlayers/examples/utfgrid/geography-class/2/2/3.grid.json +0 -1
  378. data/misc/openlayers/examples/utfgrid/geography-class/2/3/0.grid.json +0 -1
  379. data/misc/openlayers/examples/utfgrid/geography-class/2/3/1.grid.json +0 -1
  380. data/misc/openlayers/examples/utfgrid/geography-class/2/3/2.grid.json +0 -1
  381. data/misc/openlayers/examples/utfgrid/geography-class/2/3/3.grid.json +0 -1
  382. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/0.json +0 -1
  383. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/1.json +0 -1
  384. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/2.json +0 -1
  385. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/0.json +0 -1
  386. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/1.json +0 -1
  387. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/2.json +0 -1
  388. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/0.json +0 -1
  389. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/1.json +0 -1
  390. data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/2.json +0 -1
  391. data/misc/openlayers/examples/utfgrid_twogrids.html +0 -51
  392. data/misc/openlayers/examples/utfgrid_twogrids.js +0 -70
  393. data/misc/openlayers/examples/vector-features-with-text.html +0 -138
  394. data/misc/openlayers/examples/vector-features.html +0 -149
  395. data/misc/openlayers/examples/vector-formats.html +0 -240
  396. data/misc/openlayers/examples/web-mercator.html +0 -50
  397. data/misc/openlayers/examples/web-mercator.js +0 -37
  398. data/misc/openlayers/examples/wfs-filter.html +0 -35
  399. data/misc/openlayers/examples/wfs-filter.js +0 -48
  400. data/misc/openlayers/examples/wfs-protocol-transactions.html +0 -104
  401. data/misc/openlayers/examples/wfs-protocol-transactions.js +0 -106
  402. data/misc/openlayers/examples/wfs-protocol.html +0 -55
  403. data/misc/openlayers/examples/wfs-reprojection.html +0 -42
  404. data/misc/openlayers/examples/wfs-reprojection.js +0 -60
  405. data/misc/openlayers/examples/wfs-snap-split.html +0 -292
  406. data/misc/openlayers/examples/wfs-spatial-filter.html +0 -37
  407. data/misc/openlayers/examples/wfs-spatial-filter.js +0 -36
  408. data/misc/openlayers/examples/wfs-states.html +0 -34
  409. data/misc/openlayers/examples/wfs-states.js +0 -35
  410. data/misc/openlayers/examples/wmc.html +0 -150
  411. data/misc/openlayers/examples/wms-long-url.html +0 -44
  412. data/misc/openlayers/examples/wms-long-url.js +0 -26
  413. data/misc/openlayers/examples/wms-untiled.html +0 -48
  414. data/misc/openlayers/examples/wms-v13.html +0 -57
  415. data/misc/openlayers/examples/wms.html +0 -49
  416. data/misc/openlayers/examples/wmst.html +0 -63
  417. data/misc/openlayers/examples/wmts-capabilities.html +0 -43
  418. data/misc/openlayers/examples/wmts-capabilities.js +0 -58
  419. data/misc/openlayers/examples/wmts-getfeatureinfo.html +0 -74
  420. data/misc/openlayers/examples/wmts-getfeatureinfo.js +0 -94
  421. data/misc/openlayers/examples/wmts.html +0 -41
  422. data/misc/openlayers/examples/wmts.js +0 -35
  423. data/misc/openlayers/examples/wps-client.html +0 -31
  424. data/misc/openlayers/examples/wps-client.js +0 -75
  425. data/misc/openlayers/examples/wps.html +0 -89
  426. data/misc/openlayers/examples/wps.js +0 -353
  427. data/misc/openlayers/examples/wrapDateLine.html +0 -73
  428. data/misc/openlayers/examples/xhtml.html +0 -42
  429. data/misc/openlayers/examples/xml.html +0 -161
  430. data/misc/openlayers/examples/xml/features.xml +0 -2
  431. data/misc/openlayers/examples/xml/georss-flickr.xml +0 -730
  432. data/misc/openlayers/examples/xml/track1.xml +0 -98
  433. data/misc/openlayers/examples/xml/wmsdescribelayer.xml +0 -5
  434. data/misc/openlayers/examples/xyz-esri.html +0 -45
  435. data/misc/openlayers/examples/yelp-georss.xml +0 -147
  436. data/misc/openlayers/examples/zoom.html +0 -68
  437. data/misc/openlayers/examples/zoom.js +0 -34
  438. data/misc/openlayers/examples/zoomLevels.html +0 -81
  439. data/misc/openlayers/examples/zoomify.html +0 -70
  440. data/misc/openlayers/img/blank.gif +0 -0
  441. data/misc/openlayers/img/cloud-popup-relative.png +0 -0
  442. data/misc/openlayers/img/drag-rectangle-off.png +0 -0
  443. data/misc/openlayers/img/drag-rectangle-on.png +0 -0
  444. data/misc/openlayers/img/east-mini.png +0 -0
  445. data/misc/openlayers/img/layer-switcher-maximize.png +0 -0
  446. data/misc/openlayers/img/layer-switcher-minimize.png +0 -0
  447. data/misc/openlayers/img/marker-blue.png +0 -0
  448. data/misc/openlayers/img/marker-gold.png +0 -0
  449. data/misc/openlayers/img/marker-green.png +0 -0
  450. data/misc/openlayers/img/marker.png +0 -0
  451. data/misc/openlayers/img/measuring-stick-off.png +0 -0
  452. data/misc/openlayers/img/measuring-stick-on.png +0 -0
  453. data/misc/openlayers/img/north-mini.png +0 -0
  454. data/misc/openlayers/img/panning-hand-off.png +0 -0
  455. data/misc/openlayers/img/panning-hand-on.png +0 -0
  456. data/misc/openlayers/img/slider.png +0 -0
  457. data/misc/openlayers/img/south-mini.png +0 -0
  458. data/misc/openlayers/img/west-mini.png +0 -0
  459. data/misc/openlayers/img/zoom-minus-mini.png +0 -0
  460. data/misc/openlayers/img/zoom-plus-mini.png +0 -0
  461. data/misc/openlayers/img/zoom-world-mini.png +0 -0
  462. data/misc/openlayers/img/zoombar.png +0 -0
  463. data/misc/openlayers/lib/Firebug/errorIcon.png +0 -0
  464. data/misc/openlayers/lib/Firebug/firebug.css +0 -209
  465. data/misc/openlayers/lib/Firebug/firebug.html +0 -23
  466. data/misc/openlayers/lib/Firebug/firebug.js +0 -674
  467. data/misc/openlayers/lib/Firebug/firebugx.js +0 -10
  468. data/misc/openlayers/lib/Firebug/infoIcon.png +0 -0
  469. data/misc/openlayers/lib/Firebug/license.txt +0 -30
  470. data/misc/openlayers/lib/Firebug/readme.txt +0 -13
  471. data/misc/openlayers/lib/Firebug/warningIcon.png +0 -0
  472. data/misc/openlayers/lib/OpenLayers.js +0 -429
  473. data/misc/openlayers/lib/OpenLayers/Animation.js +0 -102
  474. data/misc/openlayers/lib/OpenLayers/BaseTypes.js +0 -463
  475. data/misc/openlayers/lib/OpenLayers/BaseTypes/Bounds.js +0 -837
  476. data/misc/openlayers/lib/OpenLayers/BaseTypes/Class.js +0 -121
  477. data/misc/openlayers/lib/OpenLayers/BaseTypes/Date.js +0 -123
  478. data/misc/openlayers/lib/OpenLayers/BaseTypes/Element.js +0 -189
  479. data/misc/openlayers/lib/OpenLayers/BaseTypes/LonLat.js +0 -215
  480. data/misc/openlayers/lib/OpenLayers/BaseTypes/Pixel.js +0 -143
  481. data/misc/openlayers/lib/OpenLayers/BaseTypes/Size.js +0 -89
  482. data/misc/openlayers/lib/OpenLayers/Console.js +0 -250
  483. data/misc/openlayers/lib/OpenLayers/Control.js +0 -371
  484. data/misc/openlayers/lib/OpenLayers/Control/ArgParser.js +0 -182
  485. data/misc/openlayers/lib/OpenLayers/Control/Attribution.js +0 -104
  486. data/misc/openlayers/lib/OpenLayers/Control/Button.js +0 -44
  487. data/misc/openlayers/lib/OpenLayers/Control/CacheRead.js +0 -156
  488. data/misc/openlayers/lib/OpenLayers/Control/CacheWrite.js +0 -257
  489. data/misc/openlayers/lib/OpenLayers/Control/DragFeature.js +0 -366
  490. data/misc/openlayers/lib/OpenLayers/Control/DragPan.js +0 -156
  491. data/misc/openlayers/lib/OpenLayers/Control/DrawFeature.js +0 -229
  492. data/misc/openlayers/lib/OpenLayers/Control/EditingToolbar.js +0 -81
  493. data/misc/openlayers/lib/OpenLayers/Control/Geolocate.js +0 -192
  494. data/misc/openlayers/lib/OpenLayers/Control/GetFeature.js +0 -597
  495. data/misc/openlayers/lib/OpenLayers/Control/Graticule.js +0 -377
  496. data/misc/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js +0 -142
  497. data/misc/openlayers/lib/OpenLayers/Control/LayerSwitcher.js +0 -521
  498. data/misc/openlayers/lib/OpenLayers/Control/Measure.js +0 -379
  499. data/misc/openlayers/lib/OpenLayers/Control/ModifyFeature.js +0 -835
  500. data/misc/openlayers/lib/OpenLayers/Control/MousePosition.js +0 -227
  501. data/misc/openlayers/lib/OpenLayers/Control/NavToolbar.js +0 -57
  502. data/misc/openlayers/lib/OpenLayers/Control/Navigation.js +0 -345
  503. data/misc/openlayers/lib/OpenLayers/Control/NavigationHistory.js +0 -423
  504. data/misc/openlayers/lib/OpenLayers/Control/OverviewMap.js +0 -750
  505. data/misc/openlayers/lib/OpenLayers/Control/Pan.js +0 -95
  506. data/misc/openlayers/lib/OpenLayers/Control/PanPanel.js +0 -73
  507. data/misc/openlayers/lib/OpenLayers/Control/PanZoom.js +0 -233
  508. data/misc/openlayers/lib/OpenLayers/Control/PanZoomBar.js +0 -408
  509. data/misc/openlayers/lib/OpenLayers/Control/Panel.js +0 -431
  510. data/misc/openlayers/lib/OpenLayers/Control/Permalink.js +0 -257
  511. data/misc/openlayers/lib/OpenLayers/Control/PinchZoom.js +0 -157
  512. data/misc/openlayers/lib/OpenLayers/Control/SLDSelect.js +0 -567
  513. data/misc/openlayers/lib/OpenLayers/Control/Scale.js +0 -100
  514. data/misc/openlayers/lib/OpenLayers/Control/ScaleLine.js +0 -220
  515. data/misc/openlayers/lib/OpenLayers/Control/SelectFeature.js +0 -643
  516. data/misc/openlayers/lib/OpenLayers/Control/Snapping.js +0 -560
  517. data/misc/openlayers/lib/OpenLayers/Control/Split.js +0 -494
  518. data/misc/openlayers/lib/OpenLayers/Control/TouchNavigation.js +0 -182
  519. data/misc/openlayers/lib/OpenLayers/Control/TransformFeature.js +0 -624
  520. data/misc/openlayers/lib/OpenLayers/Control/UTFGrid.js +0 -240
  521. data/misc/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js +0 -532
  522. data/misc/openlayers/lib/OpenLayers/Control/WMTSGetFeatureInfo.js +0 -400
  523. data/misc/openlayers/lib/OpenLayers/Control/Zoom.js +0 -138
  524. data/misc/openlayers/lib/OpenLayers/Control/ZoomBox.js +0 -129
  525. data/misc/openlayers/lib/OpenLayers/Control/ZoomIn.js +0 -29
  526. data/misc/openlayers/lib/OpenLayers/Control/ZoomOut.js +0 -29
  527. data/misc/openlayers/lib/OpenLayers/Control/ZoomPanel.js +0 -54
  528. data/misc/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js +0 -35
  529. data/misc/openlayers/lib/OpenLayers/Events.js +0 -1170
  530. data/misc/openlayers/lib/OpenLayers/Events/buttonclick.js +0 -206
  531. data/misc/openlayers/lib/OpenLayers/Events/featureclick.js +0 -321
  532. data/misc/openlayers/lib/OpenLayers/Feature.js +0 -225
  533. data/misc/openlayers/lib/OpenLayers/Feature/Vector.js +0 -510
  534. data/misc/openlayers/lib/OpenLayers/Filter.js +0 -87
  535. data/misc/openlayers/lib/OpenLayers/Filter/Comparison.js +0 -267
  536. data/misc/openlayers/lib/OpenLayers/Filter/FeatureId.js +0 -87
  537. data/misc/openlayers/lib/OpenLayers/Filter/Function.js +0 -49
  538. data/misc/openlayers/lib/OpenLayers/Filter/Logical.js +0 -121
  539. data/misc/openlayers/lib/OpenLayers/Filter/Spatial.js +0 -122
  540. data/misc/openlayers/lib/OpenLayers/Format.js +0 -123
  541. data/misc/openlayers/lib/OpenLayers/Format/ArcXML.js +0 -1028
  542. data/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js +0 -46
  543. data/misc/openlayers/lib/OpenLayers/Format/Atom.js +0 -712
  544. data/misc/openlayers/lib/OpenLayers/Format/CQL.js +0 -452
  545. data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js +0 -34
  546. data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js +0 -240
  547. data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js +0 -34
  548. data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js +0 -457
  549. data/misc/openlayers/lib/OpenLayers/Format/Context.js +0 -334
  550. data/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js +0 -557
  551. data/misc/openlayers/lib/OpenLayers/Format/Filter.js +0 -53
  552. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js +0 -504
  553. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js +0 -184
  554. data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js +0 -222
  555. data/misc/openlayers/lib/OpenLayers/Format/GML.js +0 -923
  556. data/misc/openlayers/lib/OpenLayers/Format/GML/Base.js +0 -645
  557. data/misc/openlayers/lib/OpenLayers/Format/GML/v2.js +0 -193
  558. data/misc/openlayers/lib/OpenLayers/Format/GML/v3.js +0 -477
  559. data/misc/openlayers/lib/OpenLayers/Format/GPX.js +0 -385
  560. data/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js +0 -716
  561. data/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js +0 -409
  562. data/misc/openlayers/lib/OpenLayers/Format/JSON.js +0 -398
  563. data/misc/openlayers/lib/OpenLayers/Format/KML.js +0 -1517
  564. data/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js +0 -108
  565. data/misc/openlayers/lib/OpenLayers/Format/OSM.js +0 -465
  566. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js +0 -78
  567. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js +0 -318
  568. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js +0 -62
  569. data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js +0 -116
  570. data/misc/openlayers/lib/OpenLayers/Format/OWSContext.js +0 -86
  571. data/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js +0 -595
  572. data/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js +0 -183
  573. data/misc/openlayers/lib/OpenLayers/Format/SLD.js +0 -81
  574. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js +0 -1309
  575. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js +0 -46
  576. data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js +0 -149
  577. data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js +0 -48
  578. data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js +0 -158
  579. data/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js +0 -190
  580. data/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js +0 -302
  581. data/misc/openlayers/lib/OpenLayers/Format/Text.js +0 -151
  582. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js +0 -47
  583. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js +0 -55
  584. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js +0 -170
  585. data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js +0 -109
  586. data/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js +0 -199
  587. data/misc/openlayers/lib/OpenLayers/Format/WFS.js +0 -223
  588. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js +0 -47
  589. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js +0 -129
  590. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js +0 -115
  591. data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js +0 -63
  592. data/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js +0 -234
  593. data/misc/openlayers/lib/OpenLayers/Format/WFST.js +0 -34
  594. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js +0 -446
  595. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js +0 -174
  596. data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js +0 -189
  597. data/misc/openlayers/lib/OpenLayers/Format/WKT.js +0 -392
  598. data/misc/openlayers/lib/OpenLayers/Format/WMC.js +0 -182
  599. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js +0 -1267
  600. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js +0 -104
  601. data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js +0 -149
  602. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js +0 -56
  603. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js +0 -368
  604. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js +0 -122
  605. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js +0 -57
  606. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js +0 -60
  607. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js +0 -85
  608. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js +0 -128
  609. data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js +0 -30
  610. data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js +0 -53
  611. data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js +0 -122
  612. data/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js +0 -296
  613. data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js +0 -230
  614. data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js +0 -251
  615. data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js +0 -48
  616. data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js +0 -119
  617. data/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js +0 -185
  618. data/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js +0 -395
  619. data/misc/openlayers/lib/OpenLayers/Format/XLS.js +0 -68
  620. data/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js +0 -304
  621. data/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js +0 -48
  622. data/misc/openlayers/lib/OpenLayers/Format/XML.js +0 -897
  623. data/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js +0 -212
  624. data/misc/openlayers/lib/OpenLayers/Geometry.js +0 -500
  625. data/misc/openlayers/lib/OpenLayers/Geometry/Collection.js +0 -563
  626. data/misc/openlayers/lib/OpenLayers/Geometry/Curve.js +0 -89
  627. data/misc/openlayers/lib/OpenLayers/Geometry/LineString.js +0 -646
  628. data/misc/openlayers/lib/OpenLayers/Geometry/LinearRing.js +0 -433
  629. data/misc/openlayers/lib/OpenLayers/Geometry/MultiLineString.js +0 -258
  630. data/misc/openlayers/lib/OpenLayers/Geometry/MultiPoint.js +0 -66
  631. data/misc/openlayers/lib/OpenLayers/Geometry/MultiPolygon.js +0 -42
  632. data/misc/openlayers/lib/OpenLayers/Geometry/Point.js +0 -283
  633. data/misc/openlayers/lib/OpenLayers/Geometry/Polygon.js +0 -255
  634. data/misc/openlayers/lib/OpenLayers/Handler.js +0 -325
  635. data/misc/openlayers/lib/OpenLayers/Handler/Box.js +0 -244
  636. data/misc/openlayers/lib/OpenLayers/Handler/Click.js +0 -505
  637. data/misc/openlayers/lib/OpenLayers/Handler/Drag.js +0 -547
  638. data/misc/openlayers/lib/OpenLayers/Handler/Feature.js +0 -434
  639. data/misc/openlayers/lib/OpenLayers/Handler/Hover.js +0 -180
  640. data/misc/openlayers/lib/OpenLayers/Handler/Keyboard.js +0 -117
  641. data/misc/openlayers/lib/OpenLayers/Handler/MouseWheel.js +0 -264
  642. data/misc/openlayers/lib/OpenLayers/Handler/Path.js +0 -543
  643. data/misc/openlayers/lib/OpenLayers/Handler/Pinch.js +0 -239
  644. data/misc/openlayers/lib/OpenLayers/Handler/Point.js +0 -556
  645. data/misc/openlayers/lib/OpenLayers/Handler/Polygon.js +0 -305
  646. data/misc/openlayers/lib/OpenLayers/Handler/RegularPolygon.js +0 -429
  647. data/misc/openlayers/lib/OpenLayers/Icon.js +0 -243
  648. data/misc/openlayers/lib/OpenLayers/Kinetic.js +0 -178
  649. data/misc/openlayers/lib/OpenLayers/Lang.js +0 -134
  650. data/misc/openlayers/lib/OpenLayers/Lang/ar.js +0 -32
  651. data/misc/openlayers/lib/OpenLayers/Lang/be-tarask.js +0 -54
  652. data/misc/openlayers/lib/OpenLayers/Lang/bg.js +0 -25
  653. data/misc/openlayers/lib/OpenLayers/Lang/br.js +0 -53
  654. data/misc/openlayers/lib/OpenLayers/Lang/ca.js +0 -89
  655. data/misc/openlayers/lib/OpenLayers/Lang/cs-CZ.js +0 -45
  656. data/misc/openlayers/lib/OpenLayers/Lang/da-DK.js +0 -80
  657. data/misc/openlayers/lib/OpenLayers/Lang/de.js +0 -55
  658. data/misc/openlayers/lib/OpenLayers/Lang/el.js +0 -19
  659. data/misc/openlayers/lib/OpenLayers/Lang/en-CA.js +0 -21
  660. data/misc/openlayers/lib/OpenLayers/Lang/en.js +0 -89
  661. data/misc/openlayers/lib/OpenLayers/Lang/es.js +0 -90
  662. data/misc/openlayers/lib/OpenLayers/Lang/fi.js +0 -32
  663. data/misc/openlayers/lib/OpenLayers/Lang/fr.js +0 -53
  664. data/misc/openlayers/lib/OpenLayers/Lang/fur.js +0 -35
  665. data/misc/openlayers/lib/OpenLayers/Lang/gl.js +0 -53
  666. data/misc/openlayers/lib/OpenLayers/Lang/gsw.js +0 -53
  667. data/misc/openlayers/lib/OpenLayers/Lang/hr.js +0 -37
  668. data/misc/openlayers/lib/OpenLayers/Lang/hsb.js +0 -53
  669. data/misc/openlayers/lib/OpenLayers/Lang/hu.js +0 -54
  670. data/misc/openlayers/lib/OpenLayers/Lang/ia.js +0 -53
  671. data/misc/openlayers/lib/OpenLayers/Lang/id.js +0 -54
  672. data/misc/openlayers/lib/OpenLayers/Lang/io.js +0 -19
  673. data/misc/openlayers/lib/OpenLayers/Lang/is.js +0 -27
  674. data/misc/openlayers/lib/OpenLayers/Lang/it.js +0 -80
  675. data/misc/openlayers/lib/OpenLayers/Lang/ja.js +0 -54
  676. data/misc/openlayers/lib/OpenLayers/Lang/km.js +0 -23
  677. data/misc/openlayers/lib/OpenLayers/Lang/ksh.js +0 -53
  678. data/misc/openlayers/lib/OpenLayers/Lang/lt.js +0 -47
  679. data/misc/openlayers/lib/OpenLayers/Lang/nb.js +0 -82
  680. data/misc/openlayers/lib/OpenLayers/Lang/nds.js +0 -37
  681. data/misc/openlayers/lib/OpenLayers/Lang/nl.js +0 -53
  682. data/misc/openlayers/lib/OpenLayers/Lang/nn.js +0 -19
  683. data/misc/openlayers/lib/OpenLayers/Lang/oc.js +0 -53
  684. data/misc/openlayers/lib/OpenLayers/Lang/pl.js +0 -89
  685. data/misc/openlayers/lib/OpenLayers/Lang/pt-BR.js +0 -54
  686. data/misc/openlayers/lib/OpenLayers/Lang/pt.js +0 -55
  687. data/misc/openlayers/lib/OpenLayers/Lang/ro.js +0 -69
  688. data/misc/openlayers/lib/OpenLayers/Lang/ru.js +0 -56
  689. data/misc/openlayers/lib/OpenLayers/Lang/sk.js +0 -44
  690. data/misc/openlayers/lib/OpenLayers/Lang/sv-SE.js +0 -45
  691. data/misc/openlayers/lib/OpenLayers/Lang/te.js +0 -27
  692. data/misc/openlayers/lib/OpenLayers/Lang/vi.js +0 -53
  693. data/misc/openlayers/lib/OpenLayers/Lang/zh-CN.js +0 -80
  694. data/misc/openlayers/lib/OpenLayers/Lang/zh-TW.js +0 -81
  695. data/misc/openlayers/lib/OpenLayers/Layer.js +0 -1377
  696. data/misc/openlayers/lib/OpenLayers/Layer/ArcGIS93Rest.js +0 -225
  697. data/misc/openlayers/lib/OpenLayers/Layer/ArcGISCache.js +0 -480
  698. data/misc/openlayers/lib/OpenLayers/Layer/ArcIMS.js +0 -425
  699. data/misc/openlayers/lib/OpenLayers/Layer/Bing.js +0 -333
  700. data/misc/openlayers/lib/OpenLayers/Layer/Boxes.js +0 -76
  701. data/misc/openlayers/lib/OpenLayers/Layer/EventPane.js +0 -441
  702. data/misc/openlayers/lib/OpenLayers/Layer/FixedZoomLevels.js +0 -319
  703. data/misc/openlayers/lib/OpenLayers/Layer/GeoRSS.js +0 -265
  704. data/misc/openlayers/lib/OpenLayers/Layer/Google.js +0 -809
  705. data/misc/openlayers/lib/OpenLayers/Layer/Google/v3.js +0 -351
  706. data/misc/openlayers/lib/OpenLayers/Layer/Grid.js +0 -1343
  707. data/misc/openlayers/lib/OpenLayers/Layer/HTTPRequest.js +0 -230
  708. data/misc/openlayers/lib/OpenLayers/Layer/Image.js +0 -259
  709. data/misc/openlayers/lib/OpenLayers/Layer/KaMap.js +0 -192
  710. data/misc/openlayers/lib/OpenLayers/Layer/KaMapCache.js +0 -143
  711. data/misc/openlayers/lib/OpenLayers/Layer/MapGuide.js +0 -443
  712. data/misc/openlayers/lib/OpenLayers/Layer/MapServer.js +0 -181
  713. data/misc/openlayers/lib/OpenLayers/Layer/Markers.js +0 -187
  714. data/misc/openlayers/lib/OpenLayers/Layer/OSM.js +0 -123
  715. data/misc/openlayers/lib/OpenLayers/Layer/PointGrid.js +0 -299
  716. data/misc/openlayers/lib/OpenLayers/Layer/PointTrack.js +0 -125
  717. data/misc/openlayers/lib/OpenLayers/Layer/SphericalMercator.js +0 -146
  718. data/misc/openlayers/lib/OpenLayers/Layer/TMS.js +0 -202
  719. data/misc/openlayers/lib/OpenLayers/Layer/Text.js +0 -267
  720. data/misc/openlayers/lib/OpenLayers/Layer/TileCache.js +0 -140
  721. data/misc/openlayers/lib/OpenLayers/Layer/UTFGrid.js +0 -184
  722. data/misc/openlayers/lib/OpenLayers/Layer/Vector.js +0 -1007
  723. data/misc/openlayers/lib/OpenLayers/Layer/Vector/RootContainer.js +0 -154
  724. data/misc/openlayers/lib/OpenLayers/Layer/WMS.js +0 -267
  725. data/misc/openlayers/lib/OpenLayers/Layer/WMTS.js +0 -510
  726. data/misc/openlayers/lib/OpenLayers/Layer/WorldWind.js +0 -105
  727. data/misc/openlayers/lib/OpenLayers/Layer/XYZ.js +0 -172
  728. data/misc/openlayers/lib/OpenLayers/Layer/Zoomify.js +0 -260
  729. data/misc/openlayers/lib/OpenLayers/Map.js +0 -2867
  730. data/misc/openlayers/lib/OpenLayers/Marker.js +0 -241
  731. data/misc/openlayers/lib/OpenLayers/Marker/Box.js +0 -120
  732. data/misc/openlayers/lib/OpenLayers/Popup.js +0 -1065
  733. data/misc/openlayers/lib/OpenLayers/Popup/Anchored.js +0 -195
  734. data/misc/openlayers/lib/OpenLayers/Popup/Framed.js +0 -343
  735. data/misc/openlayers/lib/OpenLayers/Popup/FramedCloud.js +0 -227
  736. data/misc/openlayers/lib/OpenLayers/Projection.js +0 -322
  737. data/misc/openlayers/lib/OpenLayers/Protocol.js +0 -291
  738. data/misc/openlayers/lib/OpenLayers/Protocol/CSW.js +0 -30
  739. data/misc/openlayers/lib/OpenLayers/Protocol/CSW/v2_0_2.js +0 -127
  740. data/misc/openlayers/lib/OpenLayers/Protocol/HTTP.js +0 -580
  741. data/misc/openlayers/lib/OpenLayers/Protocol/SOS.js +0 -33
  742. data/misc/openlayers/lib/OpenLayers/Protocol/SOS/v1_0_0.js +0 -133
  743. data/misc/openlayers/lib/OpenLayers/Protocol/Script.js +0 -377
  744. data/misc/openlayers/lib/OpenLayers/Protocol/WFS.js +0 -86
  745. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1.js +0 -453
  746. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_0_0.js +0 -44
  747. data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_1_0.js +0 -68
  748. data/misc/openlayers/lib/OpenLayers/Renderer.js +0 -432
  749. data/misc/openlayers/lib/OpenLayers/Renderer/Canvas.js +0 -906
  750. data/misc/openlayers/lib/OpenLayers/Renderer/Elements.js +0 -1053
  751. data/misc/openlayers/lib/OpenLayers/Renderer/SVG.js +0 -1012
  752. data/misc/openlayers/lib/OpenLayers/Renderer/VML.js +0 -985
  753. data/misc/openlayers/lib/OpenLayers/Request.js +0 -429
  754. data/misc/openlayers/lib/OpenLayers/Request/XMLHttpRequest.js +0 -458
  755. data/misc/openlayers/lib/OpenLayers/Rule.js +0 -236
  756. data/misc/openlayers/lib/OpenLayers/SingleFile.js +0 -78
  757. data/misc/openlayers/lib/OpenLayers/Spherical.js +0 -67
  758. data/misc/openlayers/lib/OpenLayers/Strategy.js +0 -121
  759. data/misc/openlayers/lib/OpenLayers/Strategy/BBOX.js +0 -290
  760. data/misc/openlayers/lib/OpenLayers/Strategy/Cluster.js +0 -283
  761. data/misc/openlayers/lib/OpenLayers/Strategy/Filter.js +0 -159
  762. data/misc/openlayers/lib/OpenLayers/Strategy/Fixed.js +0 -135
  763. data/misc/openlayers/lib/OpenLayers/Strategy/Paging.js +0 -233
  764. data/misc/openlayers/lib/OpenLayers/Strategy/Refresh.js +0 -141
  765. data/misc/openlayers/lib/OpenLayers/Strategy/Save.js +0 -231
  766. data/misc/openlayers/lib/OpenLayers/Style.js +0 -448
  767. data/misc/openlayers/lib/OpenLayers/Style2.js +0 -112
  768. data/misc/openlayers/lib/OpenLayers/StyleMap.js +0 -161
  769. data/misc/openlayers/lib/OpenLayers/Symbolizer.js +0 -55
  770. data/misc/openlayers/lib/OpenLayers/Symbolizer/Line.js +0 -74
  771. data/misc/openlayers/lib/OpenLayers/Symbolizer/Point.js +0 -157
  772. data/misc/openlayers/lib/OpenLayers/Symbolizer/Polygon.js +0 -88
  773. data/misc/openlayers/lib/OpenLayers/Symbolizer/Raster.js +0 -34
  774. data/misc/openlayers/lib/OpenLayers/Symbolizer/Text.js +0 -70
  775. data/misc/openlayers/lib/OpenLayers/Tile.js +0 -292
  776. data/misc/openlayers/lib/OpenLayers/Tile/Image.js +0 -510
  777. data/misc/openlayers/lib/OpenLayers/Tile/Image/IFrame.js +0 -233
  778. data/misc/openlayers/lib/OpenLayers/Tile/UTFGrid.js +0 -252
  779. data/misc/openlayers/lib/OpenLayers/TileManager.js +0 -462
  780. data/misc/openlayers/lib/OpenLayers/Tween.js +0 -361
  781. data/misc/openlayers/lib/OpenLayers/Util.js +0 -1773
  782. data/misc/openlayers/lib/OpenLayers/Util/vendorPrefix.js +0 -131
  783. data/misc/openlayers/lib/OpenLayers/WPSClient.js +0 -223
  784. data/misc/openlayers/lib/OpenLayers/WPSProcess.js +0 -501
  785. data/misc/openlayers/lib/Rico/Color.js +0 -253
  786. data/misc/openlayers/lib/Rico/Corner.js +0 -339
  787. data/misc/openlayers/lib/Rico/license.js +0 -19
  788. data/misc/openlayers/lib/deprecated.js +0 -5842
  789. data/misc/openlayers/license.txt +0 -27
  790. data/misc/openlayers/licenses/APACHE-2.0.txt +0 -202
  791. data/misc/openlayers/licenses/BSD-LICENSE.txt +0 -28
  792. data/misc/openlayers/licenses/MIT-LICENSE.txt +0 -18
  793. data/misc/openlayers/notes/2.12.md +0 -391
  794. data/misc/openlayers/notes/2.13.md +0 -159
  795. data/misc/openlayers/readme.md +0 -79
  796. data/misc/openlayers/tests/Animation.html +0 -96
  797. data/misc/openlayers/tests/BaseTypes.html +0 -387
  798. data/misc/openlayers/tests/BaseTypes/Bounds.html +0 -738
  799. data/misc/openlayers/tests/BaseTypes/Class.html +0 -350
  800. data/misc/openlayers/tests/BaseTypes/Date.html +0 -191
  801. data/misc/openlayers/tests/BaseTypes/Element.html +0 -195
  802. data/misc/openlayers/tests/BaseTypes/LonLat.html +0 -241
  803. data/misc/openlayers/tests/BaseTypes/Pixel.html +0 -123
  804. data/misc/openlayers/tests/BaseTypes/Size.html +0 -67
  805. data/misc/openlayers/tests/Console.html +0 -39
  806. data/misc/openlayers/tests/Control.html +0 -107
  807. data/misc/openlayers/tests/Control/ArgParser.html +0 -26
  808. data/misc/openlayers/tests/Control/Attribution.html +0 -60
  809. data/misc/openlayers/tests/Control/Button.html +0 -17
  810. data/misc/openlayers/tests/Control/CacheRead.html +0 -108
  811. data/misc/openlayers/tests/Control/CacheWrite.html +0 -90
  812. data/misc/openlayers/tests/Control/DragFeature.html +0 -383
  813. data/misc/openlayers/tests/Control/DragPan.html +0 -104
  814. data/misc/openlayers/tests/Control/DrawFeature.html +0 -160
  815. data/misc/openlayers/tests/Control/EditingToolbar.html +0 -33
  816. data/misc/openlayers/tests/Control/Geolocate.html +0 -129
  817. data/misc/openlayers/tests/Control/GetFeature.html +0 -177
  818. data/misc/openlayers/tests/Control/Graticule.html +0 -66
  819. data/misc/openlayers/tests/Control/KeyboardDefaults.html +0 -173
  820. data/misc/openlayers/tests/Control/LayerSwitcher.html +0 -249
  821. data/misc/openlayers/tests/Control/Measure.html +0 -386
  822. data/misc/openlayers/tests/Control/ModifyFeature.html +0 -828
  823. data/misc/openlayers/tests/Control/MousePosition.html +0 -109
  824. data/misc/openlayers/tests/Control/NavToolbar.html +0 -45
  825. data/misc/openlayers/tests/Control/Navigation.html +0 -200
  826. data/misc/openlayers/tests/Control/NavigationHistory.html +0 -245
  827. data/misc/openlayers/tests/Control/OverviewMap.html +0 -266
  828. data/misc/openlayers/tests/Control/Pan.html +0 -201
  829. data/misc/openlayers/tests/Control/PanPanel.html +0 -61
  830. data/misc/openlayers/tests/Control/PanZoom.html +0 -244
  831. data/misc/openlayers/tests/Control/PanZoomBar.html +0 -245
  832. data/misc/openlayers/tests/Control/Panel.html +0 -382
  833. data/misc/openlayers/tests/Control/Permalink.html +0 -453
  834. data/misc/openlayers/tests/Control/PinchZoom.html +0 -134
  835. data/misc/openlayers/tests/Control/SLDSelect.html +0 -239
  836. data/misc/openlayers/tests/Control/Scale.html +0 -54
  837. data/misc/openlayers/tests/Control/ScaleLine.html +0 -187
  838. data/misc/openlayers/tests/Control/SelectFeature.html +0 -632
  839. data/misc/openlayers/tests/Control/Snapping.html +0 -448
  840. data/misc/openlayers/tests/Control/Split.html +0 -319
  841. data/misc/openlayers/tests/Control/TouchNavigation.html +0 -155
  842. data/misc/openlayers/tests/Control/TransformFeature.html +0 -129
  843. data/misc/openlayers/tests/Control/UTFGrid.html +0 -120
  844. data/misc/openlayers/tests/Control/WMSGetFeatureInfo.html +0 -644
  845. data/misc/openlayers/tests/Control/WMTSGetFeatureInfo.html +0 -334
  846. data/misc/openlayers/tests/Control/Zoom.html +0 -83
  847. data/misc/openlayers/tests/Control/ZoomBox.html +0 -54
  848. data/misc/openlayers/tests/Control/ZoomIn.html +0 -101
  849. data/misc/openlayers/tests/Control/ZoomOut.html +0 -100
  850. data/misc/openlayers/tests/Control/ZoomToMaxExtent.html +0 -102
  851. data/misc/openlayers/tests/Events.html +0 -487
  852. data/misc/openlayers/tests/Events/buttonclick.html +0 -214
  853. data/misc/openlayers/tests/Events/featureclick.html +0 -91
  854. data/misc/openlayers/tests/Extras.html +0 -21
  855. data/misc/openlayers/tests/Feature.html +0 -205
  856. data/misc/openlayers/tests/Feature/Vector.html +0 -170
  857. data/misc/openlayers/tests/Filter.html +0 -31
  858. data/misc/openlayers/tests/Filter/Comparison.html +0 -373
  859. data/misc/openlayers/tests/Filter/FeatureId.html +0 -67
  860. data/misc/openlayers/tests/Filter/Logical.html +0 -144
  861. data/misc/openlayers/tests/Filter/Spatial.html +0 -112
  862. data/misc/openlayers/tests/Format.html +0 -23
  863. data/misc/openlayers/tests/Format/ArcXML.html +0 -277
  864. data/misc/openlayers/tests/Format/ArcXML/Features.html +0 -69
  865. data/misc/openlayers/tests/Format/Atom.html +0 -450
  866. data/misc/openlayers/tests/Format/CQL.html +0 -364
  867. data/misc/openlayers/tests/Format/CSWGetDomain.html +0 -23
  868. data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.html +0 -56
  869. data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.js +0 -18
  870. data/misc/openlayers/tests/Format/CSWGetRecords.html +0 -23
  871. data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.html +0 -88
  872. data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.js +0 -50
  873. data/misc/openlayers/tests/Format/EncodedPolyline.html +0 -372
  874. data/misc/openlayers/tests/Format/Filter.html +0 -21
  875. data/misc/openlayers/tests/Format/Filter/v1.html +0 -404
  876. data/misc/openlayers/tests/Format/Filter/v1_0_0.html +0 -295
  877. data/misc/openlayers/tests/Format/Filter/v1_1_0.html +0 -402
  878. data/misc/openlayers/tests/Format/GML.html +0 -462
  879. data/misc/openlayers/tests/Format/GML/cases.js +0 -232
  880. data/misc/openlayers/tests/Format/GML/v2.html +0 -684
  881. data/misc/openlayers/tests/Format/GML/v3.html +0 -828
  882. data/misc/openlayers/tests/Format/GPX.html +0 -179
  883. data/misc/openlayers/tests/Format/GeoJSON.html +0 -468
  884. data/misc/openlayers/tests/Format/GeoRSS.html +0 -122
  885. data/misc/openlayers/tests/Format/JSON.html +0 -53
  886. data/misc/openlayers/tests/Format/KML.html +0 -1437
  887. data/misc/openlayers/tests/Format/OGCExceptionReport.html +0 -100
  888. data/misc/openlayers/tests/Format/OSM.html +0 -115
  889. data/misc/openlayers/tests/Format/OWSCommon/v1_0_0.html +0 -34
  890. data/misc/openlayers/tests/Format/OWSCommon/v1_1_0.html +0 -34
  891. data/misc/openlayers/tests/Format/OWSContext/v0_3_1.html +0 -278
  892. data/misc/openlayers/tests/Format/QueryStringFilter.html +0 -306
  893. data/misc/openlayers/tests/Format/SLD.html +0 -36
  894. data/misc/openlayers/tests/Format/SLD/v1_0_0.html +0 -1028
  895. data/misc/openlayers/tests/Format/SLD/v1_0_0_GeoServer.html +0 -228
  896. data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.html +0 -80
  897. data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.js +0 -484
  898. data/misc/openlayers/tests/Format/SOSGetFeatureOfInterest.html +0 -80
  899. data/misc/openlayers/tests/Format/SOSGetObservation.html +0 -183
  900. data/misc/openlayers/tests/Format/Text.html +0 -49
  901. data/misc/openlayers/tests/Format/WCSCapabilities.html +0 -43
  902. data/misc/openlayers/tests/Format/WCSCapabilities/v1.html +0 -87
  903. data/misc/openlayers/tests/Format/WCSGetCoverage.html +0 -80
  904. data/misc/openlayers/tests/Format/WFS.html +0 -81
  905. data/misc/openlayers/tests/Format/WFSCapabilities.html +0 -43
  906. data/misc/openlayers/tests/Format/WFSCapabilities/v1.html +0 -179
  907. data/misc/openlayers/tests/Format/WFSDescribeFeatureType.html +0 -436
  908. data/misc/openlayers/tests/Format/WFST.html +0 -23
  909. data/misc/openlayers/tests/Format/WFST/v1.html +0 -455
  910. data/misc/openlayers/tests/Format/WFST/v1_0_0.html +0 -135
  911. data/misc/openlayers/tests/Format/WFST/v1_1_0.html +0 -236
  912. data/misc/openlayers/tests/Format/WKT.html +0 -297
  913. data/misc/openlayers/tests/Format/WMC.html +0 -315
  914. data/misc/openlayers/tests/Format/WMC/v1.html +0 -266
  915. data/misc/openlayers/tests/Format/WMC/v1_1_0.html +0 -86
  916. data/misc/openlayers/tests/Format/WMSCapabilities.html +0 -20
  917. data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1.html +0 -5209
  918. data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1_WMSC.html +0 -348
  919. data/misc/openlayers/tests/Format/WMSCapabilities/v1_3_0.html +0 -614
  920. data/misc/openlayers/tests/Format/WMSDescribeLayer.html +0 -65
  921. data/misc/openlayers/tests/Format/WMSGetFeatureInfo.html +0 -319
  922. data/misc/openlayers/tests/Format/WMTSCapabilities.html +0 -20
  923. data/misc/openlayers/tests/Format/WMTSCapabilities/v1_0_0.html +0 -1042
  924. data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.html +0 -30
  925. data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.js +0 -112
  926. data/misc/openlayers/tests/Format/WPSDescribeProcess.html +0 -206
  927. data/misc/openlayers/tests/Format/WPSExecute.html +0 -549
  928. data/misc/openlayers/tests/Format/XLS/v1_1_0.html +0 -98
  929. data/misc/openlayers/tests/Format/XML.html +0 -900
  930. data/misc/openlayers/tests/Format/XML/VersionedOGC.html +0 -51
  931. data/misc/openlayers/tests/Geometry.html +0 -356
  932. data/misc/openlayers/tests/Geometry/Collection.html +0 -431
  933. data/misc/openlayers/tests/Geometry/Curve.html +0 -157
  934. data/misc/openlayers/tests/Geometry/LineString.html +0 -443
  935. data/misc/openlayers/tests/Geometry/LinearRing.html +0 -362
  936. data/misc/openlayers/tests/Geometry/MultiLineString.html +0 -267
  937. data/misc/openlayers/tests/Geometry/MultiPoint.html +0 -130
  938. data/misc/openlayers/tests/Geometry/MultiPolygon.html +0 -34
  939. data/misc/openlayers/tests/Geometry/Point.html +0 -244
  940. data/misc/openlayers/tests/Geometry/Polygon.html +0 -420
  941. data/misc/openlayers/tests/Handler.html +0 -265
  942. data/misc/openlayers/tests/Handler/Box.html +0 -106
  943. data/misc/openlayers/tests/Handler/Click.html +0 -735
  944. data/misc/openlayers/tests/Handler/Drag.html +0 -603
  945. data/misc/openlayers/tests/Handler/Feature.html +0 -698
  946. data/misc/openlayers/tests/Handler/Hover.html +0 -136
  947. data/misc/openlayers/tests/Handler/Keyboard.html +0 -150
  948. data/misc/openlayers/tests/Handler/MouseWheel.html +0 -182
  949. data/misc/openlayers/tests/Handler/Path.html +0 -1464
  950. data/misc/openlayers/tests/Handler/Pinch.html +0 -285
  951. data/misc/openlayers/tests/Handler/Point.html +0 -600
  952. data/misc/openlayers/tests/Handler/Polygon.html +0 -1161
  953. data/misc/openlayers/tests/Handler/RegularPolygon.html +0 -235
  954. data/misc/openlayers/tests/Icon.html +0 -68
  955. data/misc/openlayers/tests/Kinetic.html +0 -132
  956. data/misc/openlayers/tests/Lang.html +0 -106
  957. data/misc/openlayers/tests/Layer.html +0 -910
  958. data/misc/openlayers/tests/Layer/ArcGIS93Rest.html +0 -324
  959. data/misc/openlayers/tests/Layer/ArcGISCache.html +0 -256
  960. data/misc/openlayers/tests/Layer/ArcGISCache.json +0 -334
  961. data/misc/openlayers/tests/Layer/ArcIMS.html +0 -123
  962. data/misc/openlayers/tests/Layer/Bing.html +0 -200
  963. data/misc/openlayers/tests/Layer/EventPane.html +0 -172
  964. data/misc/openlayers/tests/Layer/FixedZoomLevels.html +0 -137
  965. data/misc/openlayers/tests/Layer/GeoRSS.html +0 -210
  966. data/misc/openlayers/tests/Layer/Google.html +0 -369
  967. data/misc/openlayers/tests/Layer/Google/v3.html +0 -337
  968. data/misc/openlayers/tests/Layer/Grid.html +0 -1593
  969. data/misc/openlayers/tests/Layer/HTTPRequest.html +0 -229
  970. data/misc/openlayers/tests/Layer/Image.html +0 -164
  971. data/misc/openlayers/tests/Layer/KaMap.html +0 -287
  972. data/misc/openlayers/tests/Layer/MapGuide.html +0 -177
  973. data/misc/openlayers/tests/Layer/MapServer.html +0 -238
  974. data/misc/openlayers/tests/Layer/Markers.html +0 -156
  975. data/misc/openlayers/tests/Layer/OSM.html +0 -16
  976. data/misc/openlayers/tests/Layer/PointGrid.html +0 -232
  977. data/misc/openlayers/tests/Layer/PointTrack.html +0 -79
  978. data/misc/openlayers/tests/Layer/SphericalMercator.html +0 -126
  979. data/misc/openlayers/tests/Layer/TMS.html +0 -262
  980. data/misc/openlayers/tests/Layer/Text.html +0 -211
  981. data/misc/openlayers/tests/Layer/TileCache.html +0 -203
  982. data/misc/openlayers/tests/Layer/UTFGrid.html +0 -131
  983. data/misc/openlayers/tests/Layer/Vector.html +0 -879
  984. data/misc/openlayers/tests/Layer/Vector/RootContainer.html +0 -63
  985. data/misc/openlayers/tests/Layer/WMS.html +0 -583
  986. data/misc/openlayers/tests/Layer/WMTS.html +0 -1491
  987. data/misc/openlayers/tests/Layer/WrapDateLine.html +0 -188
  988. data/misc/openlayers/tests/Layer/XYZ.html +0 -266
  989. data/misc/openlayers/tests/Layer/atom-1.0.xml +0 -34
  990. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile.txt +0 -3
  991. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_2.txt +0 -3
  992. data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_overflow.txt +0 -3
  993. data/misc/openlayers/tests/Layer/georss.txt +0 -378
  994. data/misc/openlayers/tests/Map.html +0 -2255
  995. data/misc/openlayers/tests/Marker.html +0 -163
  996. data/misc/openlayers/tests/Marker/Box.html +0 -183
  997. data/misc/openlayers/tests/OLLoader.js +0 -26
  998. data/misc/openlayers/tests/OpenLayers1.html +0 -18
  999. data/misc/openlayers/tests/OpenLayers2.html +0 -19
  1000. data/misc/openlayers/tests/OpenLayers3.html +0 -19
  1001. data/misc/openlayers/tests/OpenLayers4.html +0 -18
  1002. data/misc/openlayers/tests/OpenLayersJsFiles.html +0 -27
  1003. data/misc/openlayers/tests/Popup.html +0 -219
  1004. data/misc/openlayers/tests/Popup/Anchored.html +0 -37
  1005. data/misc/openlayers/tests/Popup/FramedCloud.html +0 -18
  1006. data/misc/openlayers/tests/Projection.html +0 -87
  1007. data/misc/openlayers/tests/Protocol.html +0 -63
  1008. data/misc/openlayers/tests/Protocol/CSW.html +0 -90
  1009. data/misc/openlayers/tests/Protocol/HTTP.html +0 -842
  1010. data/misc/openlayers/tests/Protocol/SOS.html +0 -57
  1011. data/misc/openlayers/tests/Protocol/Script.html +0 -282
  1012. data/misc/openlayers/tests/Protocol/WFS.html +0 -471
  1013. data/misc/openlayers/tests/README.txt +0 -16
  1014. data/misc/openlayers/tests/Renderer.html +0 -96
  1015. data/misc/openlayers/tests/Renderer/Canvas.html +0 -501
  1016. data/misc/openlayers/tests/Renderer/Elements.html +0 -651
  1017. data/misc/openlayers/tests/Renderer/SVG.html +0 -441
  1018. data/misc/openlayers/tests/Renderer/VML.html +0 -454
  1019. data/misc/openlayers/tests/Request.html +0 -524
  1020. data/misc/openlayers/tests/Request/XMLHttpRequest.html +0 -59
  1021. data/misc/openlayers/tests/Rule.html +0 -123
  1022. data/misc/openlayers/tests/SingleFile1.html +0 -15
  1023. data/misc/openlayers/tests/SingleFile2.html +0 -15
  1024. data/misc/openlayers/tests/SingleFile3.html +0 -15
  1025. data/misc/openlayers/tests/Strategy.html +0 -94
  1026. data/misc/openlayers/tests/Strategy/BBOX.html +0 -361
  1027. data/misc/openlayers/tests/Strategy/Cluster.html +0 -148
  1028. data/misc/openlayers/tests/Strategy/Filter.html +0 -135
  1029. data/misc/openlayers/tests/Strategy/Fixed.html +0 -253
  1030. data/misc/openlayers/tests/Strategy/Paging.html +0 -113
  1031. data/misc/openlayers/tests/Strategy/Refresh.html +0 -177
  1032. data/misc/openlayers/tests/Strategy/Save.html +0 -127
  1033. data/misc/openlayers/tests/Style.html +0 -426
  1034. data/misc/openlayers/tests/Style2.html +0 -56
  1035. data/misc/openlayers/tests/StyleMap.html +0 -44
  1036. data/misc/openlayers/tests/Symbolizer.html +0 -31
  1037. data/misc/openlayers/tests/Symbolizer/Line.html +0 -42
  1038. data/misc/openlayers/tests/Symbolizer/Point.html +0 -52
  1039. data/misc/openlayers/tests/Symbolizer/Polygon.html +0 -44
  1040. data/misc/openlayers/tests/Symbolizer/Raster.html +0 -32
  1041. data/misc/openlayers/tests/Symbolizer/Text.html +0 -42
  1042. data/misc/openlayers/tests/Test.AnotherWay.baseadditions.js +0 -191
  1043. data/misc/openlayers/tests/Test.AnotherWay.css +0 -243
  1044. data/misc/openlayers/tests/Test.AnotherWay.geom_eq.js +0 -139
  1045. data/misc/openlayers/tests/Test.AnotherWay.js +0 -2498
  1046. data/misc/openlayers/tests/Test.AnotherWay.xml_eq.js +0 -311
  1047. data/misc/openlayers/tests/Tile.html +0 -130
  1048. data/misc/openlayers/tests/Tile/Image.html +0 -490
  1049. data/misc/openlayers/tests/Tile/Image/IFrame.html +0 -183
  1050. data/misc/openlayers/tests/Tile/UTFGrid.html +0 -306
  1051. data/misc/openlayers/tests/TileManager.html +0 -137
  1052. data/misc/openlayers/tests/Tween.html +0 -116
  1053. data/misc/openlayers/tests/Util.html +0 -1180
  1054. data/misc/openlayers/tests/Util/vendorPrefix.html +0 -117
  1055. data/misc/openlayers/tests/Util_common.js +0 -64
  1056. data/misc/openlayers/tests/Util_w3c.html +0 -35
  1057. data/misc/openlayers/tests/WPSClient.html +0 -108
  1058. data/misc/openlayers/tests/WPSProcess.html +0 -188
  1059. data/misc/openlayers/tests/atom-1.0.xml +0 -34
  1060. data/misc/openlayers/tests/auto-tests.html +0 -2447
  1061. data/misc/openlayers/tests/data/geos_wkt_intersects.js +0 -495
  1062. data/misc/openlayers/tests/data/osm.js +0 -14
  1063. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/0.json +0 -1
  1064. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/1.json +0 -1
  1065. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/2.json +0 -1
  1066. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/0.json +0 -1
  1067. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/1.json +0 -1
  1068. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/2.json +0 -1
  1069. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/0.json +0 -1
  1070. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/1.json +0 -1
  1071. data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/2.json +0 -1
  1072. data/misc/openlayers/tests/data/utfgrid/demo-1.1.json +0 -1
  1073. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/0.json +0 -1
  1074. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/1.json +0 -1
  1075. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/2.json +0 -1
  1076. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/0.json +0 -1
  1077. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/1.json +0 -1
  1078. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/2.json +0 -1
  1079. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/0.json +0 -1
  1080. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/1.json +0 -1
  1081. data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/2.json +0 -1
  1082. data/misc/openlayers/tests/data_Layer_Text_textfile.txt +0 -3
  1083. data/misc/openlayers/tests/data_Layer_Text_textfile_2.txt +0 -3
  1084. data/misc/openlayers/tests/data_Layer_Text_textfile_overflow.txt +0 -3
  1085. data/misc/openlayers/tests/deprecated/Ajax.html +0 -28
  1086. data/misc/openlayers/tests/deprecated/BaseTypes/Class.html +0 -142
  1087. data/misc/openlayers/tests/deprecated/BaseTypes/Element.html +0 -56
  1088. data/misc/openlayers/tests/deprecated/Control/MouseToolbar.html +0 -60
  1089. data/misc/openlayers/tests/deprecated/Geometry/Rectangle.html +0 -77
  1090. data/misc/openlayers/tests/deprecated/Layer/GML.html +0 -61
  1091. data/misc/openlayers/tests/deprecated/Layer/MapServer.html +0 -59
  1092. data/misc/openlayers/tests/deprecated/Layer/MapServer/Untiled.html +0 -158
  1093. data/misc/openlayers/tests/deprecated/Layer/WFS.html +0 -178
  1094. data/misc/openlayers/tests/deprecated/Layer/WMS.html +0 -60
  1095. data/misc/openlayers/tests/deprecated/Layer/WMS/Post.html +0 -89
  1096. data/misc/openlayers/tests/deprecated/Layer/Yahoo.html +0 -121
  1097. data/misc/openlayers/tests/deprecated/Layer/mice.xml +0 -156
  1098. data/misc/openlayers/tests/deprecated/Layer/owls.xml +0 -156
  1099. data/misc/openlayers/tests/deprecated/Popup/AnchoredBubble.html +0 -61
  1100. data/misc/openlayers/tests/deprecated/Protocol/SQL.html +0 -24
  1101. data/misc/openlayers/tests/deprecated/Protocol/SQL/Gears.html +0 -474
  1102. data/misc/openlayers/tests/deprecated/Renderer/SVG2.html +0 -399
  1103. data/misc/openlayers/tests/deprecated/Tile/WFS.html +0 -215
  1104. data/misc/openlayers/tests/deprecated/Util.html +0 -20
  1105. data/misc/openlayers/tests/georss.txt +0 -378
  1106. data/misc/openlayers/tests/grid_inittiles.html +0 -30
  1107. data/misc/openlayers/tests/index.html +0 -6
  1108. data/misc/openlayers/tests/list-tests.html +0 -260
  1109. data/misc/openlayers/tests/manual/ajax.html +0 -49
  1110. data/misc/openlayers/tests/manual/ajax.txt +0 -1
  1111. data/misc/openlayers/tests/manual/alloverlays-mixed.html +0 -55
  1112. data/misc/openlayers/tests/manual/arcims-2117.html +0 -103
  1113. data/misc/openlayers/tests/manual/arkansas.rss +0 -9
  1114. data/misc/openlayers/tests/manual/big-georss.html +0 -33
  1115. data/misc/openlayers/tests/manual/box-quirks.html +0 -52
  1116. data/misc/openlayers/tests/manual/box-strict.html +0 -46
  1117. data/misc/openlayers/tests/manual/clip-features-svg.html +0 -128
  1118. data/misc/openlayers/tests/manual/dateline-sketch.html +0 -66
  1119. data/misc/openlayers/tests/manual/dateline-smallextent.html +0 -61
  1120. data/misc/openlayers/tests/manual/draw-feature.html +0 -73
  1121. data/misc/openlayers/tests/manual/feature-handler.html +0 -126
  1122. data/misc/openlayers/tests/manual/geodesic.html +0 -160
  1123. data/misc/openlayers/tests/manual/geojson-geomcoll-reprojection.html +0 -74
  1124. data/misc/openlayers/tests/manual/google-fullscreen-overlay.html +0 -54
  1125. data/misc/openlayers/tests/manual/google-panning.html +0 -122
  1126. data/misc/openlayers/tests/manual/google-resize.html +0 -55
  1127. data/misc/openlayers/tests/manual/google-tilt.html +0 -37
  1128. data/misc/openlayers/tests/manual/google-v3-resize.html +0 -54
  1129. data/misc/openlayers/tests/manual/loadend.html +0 -73
  1130. data/misc/openlayers/tests/manual/map-events.html +0 -38
  1131. data/misc/openlayers/tests/manual/memory/Marker-2258.html +0 -60
  1132. data/misc/openlayers/tests/manual/memory/PanZoom-2323.html +0 -41
  1133. data/misc/openlayers/tests/manual/memory/RemoveChild-2170.html +0 -56
  1134. data/misc/openlayers/tests/manual/memory/VML-2170.html +0 -49
  1135. data/misc/openlayers/tests/manual/multiple-google-layers.html +0 -135
  1136. data/misc/openlayers/tests/manual/overviewmap-projection.html +0 -70
  1137. data/misc/openlayers/tests/manual/page-position.html +0 -103
  1138. data/misc/openlayers/tests/manual/pan-redraw-svg.html +0 -58
  1139. data/misc/openlayers/tests/manual/popup-keepInMap.html +0 -100
  1140. data/misc/openlayers/tests/manual/reflow.html +0 -59
  1141. data/misc/openlayers/tests/manual/renderedDimensions.html +0 -113
  1142. data/misc/openlayers/tests/manual/select-feature-right-click.html +0 -86
  1143. data/misc/openlayers/tests/manual/select-feature.html +0 -75
  1144. data/misc/openlayers/tests/manual/tiles-loading.html +0 -122
  1145. data/misc/openlayers/tests/manual/tween.html +0 -82
  1146. data/misc/openlayers/tests/manual/vector-features-performance.html +0 -149
  1147. data/misc/openlayers/tests/manual/vector-layer-zindex.html +0 -143
  1148. data/misc/openlayers/tests/mice.xml +0 -156
  1149. data/misc/openlayers/tests/node.js/mockdom.js +0 -104
  1150. data/misc/openlayers/tests/node.js/node-tests.cfg +0 -12
  1151. data/misc/openlayers/tests/node.js/node.js +0 -1
  1152. data/misc/openlayers/tests/node.js/run-test.js +0 -26
  1153. data/misc/openlayers/tests/node.js/run.sh +0 -10
  1154. data/misc/openlayers/tests/owls.xml +0 -156
  1155. data/misc/openlayers/tests/run-tests.html +0 -155
  1156. data/misc/openlayers/tests/selenium/remotecontrol/config.cfg +0 -48
  1157. data/misc/openlayers/tests/selenium/remotecontrol/selenium.py +0 -1846
  1158. data/misc/openlayers/tests/selenium/remotecontrol/setup.txt +0 -8
  1159. data/misc/openlayers/tests/selenium/remotecontrol/test_ol.py +0 -95
  1160. data/misc/openlayers/tests/speed/geometry.html +0 -43
  1161. data/misc/openlayers/tests/speed/string_format.html +0 -29
  1162. data/misc/openlayers/tests/speed/vector-renderers.html +0 -25
  1163. data/misc/openlayers/tests/speed/vector-renderers.js +0 -70
  1164. data/misc/openlayers/tests/speed/wmc_speed.html +0 -30
  1165. data/misc/openlayers/tests/speed/wmscaps.html +0 -52
  1166. data/misc/openlayers/tests/speed/wmscaps.js +0 -4956
  1167. data/misc/openlayers/tests/speed/wmscaps.xml +0 -4954
  1168. data/misc/openlayers/tests/throws.js +0 -82
  1169. data/misc/openlayers/theme/default/google.css +0 -9
  1170. data/misc/openlayers/theme/default/google.tidy.css +0 -1
  1171. data/misc/openlayers/theme/default/ie6-style.css +0 -10
  1172. data/misc/openlayers/theme/default/ie6-style.tidy.css +0 -1
  1173. data/misc/openlayers/theme/default/img/add_point_off.png +0 -0
  1174. data/misc/openlayers/theme/default/img/add_point_on.png +0 -0
  1175. data/misc/openlayers/theme/default/img/blank.gif +0 -0
  1176. data/misc/openlayers/theme/default/img/close.gif +0 -0
  1177. data/misc/openlayers/theme/default/img/drag-rectangle-off.png +0 -0
  1178. data/misc/openlayers/theme/default/img/drag-rectangle-on.png +0 -0
  1179. data/misc/openlayers/theme/default/img/draw_line_off.png +0 -0
  1180. data/misc/openlayers/theme/default/img/draw_line_on.png +0 -0
  1181. data/misc/openlayers/theme/default/img/draw_point_off.png +0 -0
  1182. data/misc/openlayers/theme/default/img/draw_point_on.png +0 -0
  1183. data/misc/openlayers/theme/default/img/draw_polygon_off.png +0 -0
  1184. data/misc/openlayers/theme/default/img/draw_polygon_on.png +0 -0
  1185. data/misc/openlayers/theme/default/img/editing_tool_bar.png +0 -0
  1186. data/misc/openlayers/theme/default/img/move_feature_off.png +0 -0
  1187. data/misc/openlayers/theme/default/img/move_feature_on.png +0 -0
  1188. data/misc/openlayers/theme/default/img/navigation_history.png +0 -0
  1189. data/misc/openlayers/theme/default/img/overview_replacement.gif +0 -0
  1190. data/misc/openlayers/theme/default/img/pan-panel-NOALPHA.png +0 -0
  1191. data/misc/openlayers/theme/default/img/pan-panel.png +0 -0
  1192. data/misc/openlayers/theme/default/img/pan_off.png +0 -0
  1193. data/misc/openlayers/theme/default/img/pan_on.png +0 -0
  1194. data/misc/openlayers/theme/default/img/panning-hand-off.png +0 -0
  1195. data/misc/openlayers/theme/default/img/panning-hand-on.png +0 -0
  1196. data/misc/openlayers/theme/default/img/remove_point_off.png +0 -0
  1197. data/misc/openlayers/theme/default/img/remove_point_on.png +0 -0
  1198. data/misc/openlayers/theme/default/img/ruler.png +0 -0
  1199. data/misc/openlayers/theme/default/img/save_features_off.png +0 -0
  1200. data/misc/openlayers/theme/default/img/save_features_on.png +0 -0
  1201. data/misc/openlayers/theme/default/img/view_next_off.png +0 -0
  1202. data/misc/openlayers/theme/default/img/view_next_on.png +0 -0
  1203. data/misc/openlayers/theme/default/img/view_previous_off.png +0 -0
  1204. data/misc/openlayers/theme/default/img/view_previous_on.png +0 -0
  1205. data/misc/openlayers/theme/default/img/zoom-panel-NOALPHA.png +0 -0
  1206. data/misc/openlayers/theme/default/img/zoom-panel.png +0 -0
  1207. data/misc/openlayers/theme/default/style.css +0 -516
  1208. data/misc/openlayers/theme/default/style.mobile.css +0 -70
  1209. data/misc/openlayers/theme/default/style.mobile.tidy.css +0 -1
  1210. data/misc/openlayers/theme/default/style.tidy.css +0 -1
  1211. data/misc/openlayers/tools/BeautifulSoup.py +0 -1767
  1212. data/misc/openlayers/tools/README.txt +0 -14
  1213. data/misc/openlayers/tools/closure_library_jscompiler.py +0 -71
  1214. data/misc/openlayers/tools/closure_ws.py +0 -28
  1215. data/misc/openlayers/tools/exampleparser.py +0 -251
  1216. data/misc/openlayers/tools/jsmin.c +0 -272
  1217. data/misc/openlayers/tools/jsmin.py +0 -216
  1218. data/misc/openlayers/tools/mergejs.py +0 -287
  1219. data/misc/openlayers/tools/minimize.py +0 -47
  1220. data/misc/openlayers/tools/oldot.py +0 -43
  1221. data/misc/openlayers/tools/release.sh +0 -71
  1222. data/misc/openlayers/tools/shrinksafe.py +0 -54
  1223. data/misc/openlayers/tools/toposort.py +0 -35
  1224. data/misc/openlayers/tools/uglify_js.py +0 -35
  1225. data/misc/openlayers/tools/update_dev_dir.sh +0 -103
@@ -1,243 +0,0 @@
1
- /**
2
- * Test.AnotherWay version 0.5
3
- *
4
- * Copyright (c) 2005 Artem Khodush, http://straytree.org
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining
7
- * a copy of this software and associated documentation files (the
8
- * "Software"), to deal in the Software without restriction, including
9
- * without limitation the rights to use, copy, modify, merge, publish,
10
- * distribute, sublicense, and/or sell copies of the Software, and to
11
- * permit persons to whom the Software is furnished to do so, subject to
12
- * the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be
15
- * included in all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- *
25
- */
26
-
27
- * {
28
- padding: 0;
29
- margin: 0;
30
- }
31
-
32
- html {
33
- height: 99%;
34
- }
35
-
36
- body {
37
- height: 98%;
38
- font: normal normal 10pt sans-serif
39
- }
40
-
41
- #col1 {
42
- float: left;
43
- width: 27em;
44
- margin: 0 0 0 1em;
45
- overflow: visible;
46
- }
47
-
48
- #col2 {
49
- position: relative;
50
- height: 98%;
51
- margin: 0 0.5em 0 28em;
52
- }
53
-
54
- #col1_header {
55
- margin-top: 0.5em;
56
- }
57
-
58
- #scroller {
59
- height: 400px;
60
- overflow: auto;
61
- }
62
-
63
- #testtable {
64
- margin: 0 0 2em 0;
65
- width: 97%;
66
- font-size: 1em;
67
- border-collapse: collapse;
68
- }
69
- #testtable input {
70
- cursor: pointer;
71
- }
72
- #testtable td {
73
- line-height: 2em;
74
- padding: 0;
75
- margin: 0;
76
- border-top: 1px solid #ccc;
77
- border-bottom: 1px solid #ccc;
78
- }
79
- #testtable tr:hover td {
80
- background-color: #ededed;
81
- }
82
- #testtable tr.isHidden {
83
- display: none;
84
- }
85
- #testtable tr.isShown {
86
- display: table-row;
87
- }
88
-
89
- #run_buttons, #running-time {
90
- margin-bottom: 1em;
91
- }
92
-
93
- #right_header {
94
- padding-top: 0.8em;
95
- }
96
-
97
- #results_count {
98
- float: left;
99
- }
100
-
101
- #results > p:hover {
102
- background-color: #ededed;
103
- }
104
-
105
- .active_tab {
106
- float: right;
107
- padding: 0 1em 0.2em 1em;
108
- background: #0af;
109
- border: 1px solid #048;
110
- border-bottom: none;
111
- cursor: pointer;
112
- cursor: hand;
113
- position: relative;
114
- top: -0.2em;
115
- }
116
-
117
- .inactive_tab {
118
- float: right;
119
- padding: 0 1em 0 1em;
120
- background: #9bb;
121
- color: #444;
122
- border: 1px solid #9bb;
123
- border-bottom: none;
124
- cursor: pointer;
125
- cursor: hand;
126
- }
127
-
128
- .inactive_mouseover_tab {
129
- float: right;
130
- padding: 0 1em 0 1em;
131
- background: #9bb;
132
- color: #062;
133
- border: 1px solid #062;
134
- border-bottom: none;
135
- cursor: pointer;
136
- cursor: hand;
137
- }
138
-
139
- #right_frame {
140
- overflow: auto;
141
- position: relative;
142
- top: -0.2em;
143
- clear: right;
144
- height: 95%;
145
- border: 1px solid #048;
146
- }
147
-
148
- #debug {
149
- display: none;
150
- }
151
-
152
- #debug p {
153
- margin: 2px 0 0 5em;
154
- text-indent: -4.8em;
155
- }
156
-
157
- #error {
158
- display: none;
159
- color: #c22;
160
- }
161
-
162
- #results p {
163
- margin: 0 0 2px 0;
164
- }
165
-
166
- /* cursor indicating that detailed results may be expanded/contracted */
167
- #results p.badtest {
168
- cursor: text;
169
- }
170
-
171
- #results p.ok, #results p.fail {
172
- cursor: pointer;
173
- cursor: hand;
174
- }
175
-
176
- /* colored squares in the results window at the left of test page names */
177
- #results p.ok .bullet {
178
- background: #6d6;
179
- }
180
-
181
- #results p.fail .bullet {
182
- background: #d46;
183
- }
184
-
185
- #results p.badtest .bullet {
186
- background: #ea3;
187
- }
188
-
189
- #results p.loading .bullet {
190
- background: #48f;
191
- }
192
-
193
- #results p.running .bullet {
194
- background: #26e;
195
- }
196
-
197
- #results p.waiting .bullet {
198
- background: #04d;
199
- }
200
-
201
- /* highlight in the results line */
202
- #results p .warning {
203
- background: #ffc;
204
- }
205
-
206
- /* layout of the detailed results */
207
- .result_detail {
208
- padding-left: 3em;
209
- }
210
-
211
- .result_exception_detail {
212
- padding-left: 4em;
213
- }
214
-
215
- .result_exception_stack_detail {
216
- padding-left: 5em;
217
- }
218
-
219
- .result_micro_detail {
220
- padding-left: 6em;
221
- }
222
-
223
- /* colouring in the detailed results */
224
- .result_detail .fail, .result_exception_detail .fail, .result_micro_detail .fail {
225
- background: #ffd8d8;
226
- }
227
-
228
- /* "start recording" controls*/
229
- #record_div {
230
- margin-top: 3em;
231
- }
232
-
233
- #record_div p {
234
- margin-bottom: 0.5em;
235
- }
236
-
237
- #record_select {
238
- width: 88%;
239
- }
240
-
241
- #record_input {
242
- width: 53%;
243
- }
@@ -1,139 +0,0 @@
1
- /**
2
- * File: Test.AnotherWay.geom_eq.js
3
- * Adds a geom_eq method to AnotherWay test objects.
4
- *
5
- */
6
-
7
- (function() {
8
-
9
- /**
10
- * Function assertEqual
11
- * Test two objects for equivalence (based on ==). Throw an exception
12
- * if not equivalent.
13
- *
14
- * Parameters:
15
- * got - {Object}
16
- * expected - {Object}
17
- * msg - {String} The message to be thrown. This message will be appended
18
- * with ": got {got} but expected {expected}" where got and expected are
19
- * replaced with string representations of the above arguments.
20
- */
21
- function assertEqual(got, expected, msg) {
22
- if(got === undefined) {
23
- got = "undefined";
24
- } else if (got === null) {
25
- got = "null";
26
- }
27
- if(expected === undefined) {
28
- expected = "undefined";
29
- } else if (expected === null) {
30
- expected = "null";
31
- }
32
- if(got != expected) {
33
- throw msg + ": got '" + got + "' but expected '" + expected + "'";
34
- }
35
- }
36
-
37
- /**
38
- * Function assertFloatEqual
39
- * Test two objects for floating point equivalence. Throw an exception
40
- * if not equivalent.
41
- *
42
- * Parameters:
43
- * got - {Object}
44
- * expected - {Object}
45
- * msg - {String} The message to be thrown. This message will be appended
46
- * with ": got {got} but expected {expected}" where got and expected are
47
- * replaced with string representations of the above arguments.
48
- */
49
- function assertFloatEqual(got, expected, msg) {
50
- var OpenLayers = Test.AnotherWay._g_test_iframe.OpenLayers;
51
- if(got === undefined) {
52
- got = "undefined";
53
- } else if (got === null) {
54
- got = "null";
55
- }
56
- if(expected === undefined) {
57
- expected = "undefined";
58
- } else if (expected === null) {
59
- expected = "null";
60
- }
61
- if(Math.abs(got - expected) > Math.pow(10, -OpenLayers.Util.DEFAULT_PRECISION)) {
62
- throw msg + ": got '" + got + "' but expected '" + expected + "'";
63
- }
64
- }
65
-
66
- /**
67
- * Function assertGeometryEqual
68
- * Test two geometries for equivalence. Geometries are considered
69
- * equivalent if they are of the same class, and given component
70
- * geometries, if all components are equivalent. Throws a message as
71
- * exception if not equivalent.
72
- *
73
- * Parameters:
74
- * got - {OpenLayers.Geometry}
75
- * expected - {OpenLayers.Geometry}
76
- * options - {Object} Optional object for configuring test options.
77
- */
78
- function assertGeometryEqual(got, expected, options) {
79
-
80
- var OpenLayers = Test.AnotherWay._g_test_iframe.OpenLayers;
81
-
82
- // compare types
83
- assertEqual(typeof got, typeof expected, "Object types mismatch");
84
-
85
- // compare classes
86
- assertEqual(got.CLASS_NAME, expected.CLASS_NAME, "Object class mismatch");
87
-
88
- if(got instanceof OpenLayers.Geometry.Point) {
89
- // compare points
90
- assertFloatEqual(got.x, expected.x, "x mismatch");
91
- assertFloatEqual(got.y, expected.y, "y mismatch");
92
- assertFloatEqual(got.z, expected.z, "z mismatch");
93
- } else {
94
- // compare components
95
- assertEqual(
96
- got.components.length, expected.components.length,
97
- "Component length mismatch for " + got.CLASS_NAME
98
- );
99
- for(var i=0; i<got.components.length; ++i) {
100
- try {
101
- assertGeometryEqual(
102
- got.components[i], expected.components[i], options
103
- );
104
- } catch(err) {
105
- throw "Bad component " + i + " for " + got.CLASS_NAME + ": " + err;
106
- }
107
- }
108
- }
109
- return true;
110
- }
111
-
112
- /**
113
- * Function: Test.AnotherWay._test_object_t.geom_eq
114
- * Test if two geometry objects are equivalent. Tests for same geometry
115
- * class, same number of components (if any), equivalent component
116
- * geometries, and same coordinates.
117
- *
118
- * (code)
119
- * t.geom_eq(got, expected, message);
120
- * (end)
121
- *
122
- * Parameters:
123
- * got - {OpenLayers.Geometry} Any geometry instance.
124
- * expected - {OpenLayers.Geometry} The expected geometry.
125
- * msg - {String} A message to print with test output.
126
- * options - {Object} Optional object for configuring test options.
127
- */
128
- var proto = Test.AnotherWay._test_object_t.prototype;
129
- proto.geom_eq = function(got, expected, msg, options) {
130
- // test geometries for equivalence
131
- try {
132
- assertGeometryEqual(got, expected, options);
133
- this.ok(true, msg);
134
- } catch(err) {
135
- this.fail(msg + ": " + err);
136
- }
137
- }
138
-
139
- })();
@@ -1,2498 +0,0 @@
1
- /**
2
- * Test.AnotherWay version 0.5
3
- *
4
- * Copyright (c) 2005 Artem Khodush, http://straytree.org
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining
7
- * a copy of this software and associated documentation files (the
8
- * "Software"), to deal in the Software without restriction, including
9
- * without limitation the rights to use, copy, modify, merge, publish,
10
- * distribute, sublicense, and/or sell copies of the Software, and to
11
- * permit persons to whom the Software is furnished to do so, subject to
12
- * the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be
15
- * included in all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- *
25
- */
26
-
27
- if (typeof(Test) == "undefined") {
28
- Test = {};
29
- }
30
- Test.AnotherWay = {};
31
-
32
- Test.AnotherWay._g_test_iframe = null; // frame where to load test pages
33
- Test.AnotherWay._g_test_frame_no_clear = false; // true - leave last page displayed after tests end
34
- Test.AnotherWay._g_test_page_urls = []; // array of: { url: url, convention: "anotherway" or "jsan" }
35
- Test.AnotherWay._g_test_object_for_jsan = null; // test object for filling by tests that adhere to jsan Test.Simple calling convention
36
- Test.AnotherWay._g_pages_to_run = null; // list of pages to run automatically after loading
37
- Test.AnotherWay._g_run_on_main_load = false; // special handling for run_pages_to_run when it might be called before onload or before list of test pages is known.
38
- Test.AnotherWay._g_run_on_list_load = false;
39
- Test.AnotherWay._g_main_loaded = false;
40
-
41
- Test.AnotherWay._run_pages_to_run = function(called_from_outside){
42
- if (!Test.AnotherWay._g_main_loaded) {
43
- Test.AnotherWay._g_run_on_main_load = true;
44
- }
45
- else {
46
- var a_pages = Test.AnotherWay._g_pages_to_run;
47
- if (a_pages == "all") {
48
- for (var i = 0; i < Test.AnotherWay._g_test_page_urls.length; ++i) {
49
- Test.AnotherWay._run_test_page("test" + i);
50
- }
51
- }
52
- else
53
- if (a_pages != null) {
54
- for (var run_i = 0; run_i < a_pages.length; ++run_i) {
55
- var run_page = a_pages[run_i];
56
- var found = false;
57
- for (var all_i = 0; all_i < Test.AnotherWay._g_test_page_urls.length; ++all_i) {
58
- if (run_page == Test.AnotherWay._g_test_page_urls[all_i].url) {
59
- Test.AnotherWay._run_test_page("test" + all_i, called_from_outside);
60
- found = true;
61
- break;
62
- }
63
- }
64
- if (!found) {
65
- Test.AnotherWay._show_error("page specified to run is not found in the page list: " + run_page);
66
- break;
67
- }
68
- }
69
- }
70
- }
71
- };
72
-
73
- Test.AnotherWay._add_test_page_url = function(test_url, convention){
74
- var table = document.getElementById("testtable");
75
- var record_select = document.getElementById("record_select");
76
- var index = Test.AnotherWay._g_test_page_urls.length;
77
-
78
- // trim spaces.
79
- if (test_url.match("^(\\s*)(.*\\S)(\\s*)$")) {
80
- test_url = RegExp.$2;
81
- }
82
-
83
- Test.AnotherWay._g_test_page_urls[index] = {
84
- url: test_url,
85
- convention: convention
86
- };
87
- var row = table.insertRow(-1);
88
-
89
- var cell;
90
- var cell_child;
91
- var link;
92
-
93
- cell = row.insertCell(-1);
94
- cell_child = document.createElement("input");
95
- cell_child.type = "checkbox";
96
- cell_child.id = "checkbox" + index;
97
- cell_child.checked = 'checked';
98
- cell_child.defaultChecked = 'checked';
99
- cell.appendChild(cell_child);
100
-
101
- cell = row.insertCell(-1);
102
- cell.setAttribute("width", "75%");
103
-
104
- cell.appendChild(document.createTextNode(test_url));
105
-
106
- cell = row.insertCell(-1);
107
- cell_child = document.createElement("input");
108
- cell_child.type = "button";
109
- cell_child.id = "test" + index;
110
- cell_child.value = " run ";
111
- cell_child.onclick = Test.AnotherWay._run_one_onclick;
112
- cell.appendChild(cell_child);
113
-
114
- cell = row.insertCell(-1);
115
- cell.setAttribute("width", "8em");
116
- cell_child = document.createElement("span");
117
- cell.appendChild(cell_child);
118
-
119
- var option = document.createElement("option");
120
- option.appendChild(document.createTextNode(test_url));
121
- record_select.appendChild(option);
122
- };
123
- Test.AnotherWay._show_error = function(msg){
124
- var error_div = document.getElementById("error");
125
- error_div.innerHTML = "";
126
- error_div.appendChild(document.createTextNode(msg));
127
- error_div.style.display = "block";
128
- };
129
-
130
- // read urls from the list in the html file inside the list_iframe
131
- // fill on-screen list with urls and "run" buttons, and fill the g_test_page_urls object.
132
- Test.AnotherWay._list_iframe_onload = function(){
133
- if (window.frames.list_iframe != null && window.frames.list_iframe.location != "" && window.frames.list_iframe.location != "about:blank") {
134
- var list_doc = window.frames.list_iframe.document;
135
- var list = list_doc.getElementById("testlist");
136
- if (list != null) {
137
- for (var i = 0; i < list.childNodes.length; ++i) {
138
- var item = list.childNodes[i];
139
- if (item.nodeName == "LI" || item.nodeName == "li") {
140
- var convention = "anotherway";
141
- if (Test.AnotherWay._get_css_class(item) == "jsan") {
142
- convention = "jsan";
143
- }
144
- Test.AnotherWay._add_test_page_url(item.innerHTML, convention);
145
- }
146
- }
147
- if (Test.AnotherWay._g_run_on_list_load) {
148
- Test.AnotherWay._g_run_on_list_load = false;
149
- Test.AnotherWay._run_pages_to_run();
150
- }
151
- }
152
- else {
153
- Test.AnotherWay._show_error("no list with id 'testlist' in a list file " + window.frames.list_iframe.location);
154
- }
155
- }
156
- };
157
-
158
- Test.AnotherWay._map_checkboxes = function(f){
159
- var table = document.getElementById("testtable");
160
- var checks = table.getElementsByTagName("INPUT");
161
- for (var i = 0; i < checks.length; ++i) {
162
- if (checks[i].type == "checkbox" && checks[i].id.match(/^checkbox(\d+)$/)) {
163
- f(checks[i], RegExp.$1);
164
- }
165
- }
166
- };
167
-
168
- Test.AnotherWay._run_all_onclick = function(){
169
- Test.AnotherWay._map_checkboxes(function(c, id){
170
- Test.AnotherWay._run_test_page("test" + id);
171
- });
172
- };
173
- Test.AnotherWay._run_selected_onclick = function(){
174
- Test.AnotherWay._map_checkboxes(function(c, id){
175
- if (c.checked) {
176
- Test.AnotherWay._run_test_page("test" + id);
177
- }
178
- });
179
- };
180
-
181
- Test.AnotherWay._unselect_all_onclick = function(){
182
- Test.AnotherWay._map_checkboxes(function(c, id){
183
- c.checked = false;
184
- });
185
- };
186
-
187
- Test.AnotherWay._run_one_onclick = function(){
188
- Test.AnotherWay._run_test_page(this.id);
189
- };
190
-
191
- // construct an object that will gather results of running one test function
192
- Test.AnotherWay._test_object_t = function(fun_name){
193
- this.name = fun_name; // name of the test function
194
- this.n_plan = null; // planned number of assertions
195
- this.n_ok = 0; // # of ok assertions
196
- this.n_fail = 0; // # of failed assertions
197
- this.exception = ""; // if the function throwed an exception, it's its message
198
- this.exception_stack = []; // strings: function call stack from the exception
199
- this.assertions = []; // assertion results: array of { ok: 1 or 0, name: string }
200
- this.wait_result_milliseconds = 0; // how long to wait before collecting results from the test
201
- this.second_wait_msg = null; // <p> status message (in addition to the page wait_msg)
202
- this.delay_actions = []; // array of actions to be perfomed after the test function returns
203
- // action : { acton_kind: "call" | "window" | "replay"
204
- // when "call": { call_fn call_delay_milliseconds } call_fn takes nothing
205
- // when "window" : { wnd_url wnd_wnd wnd_fn wnd_timeout_milliseconds wnd_dont_close } wnd_fn takes wnd
206
- // wnen "replay" : { replay_wnd replay_events replay_event_i replay_checkpoints } checkpoint_fn takes this, wnd
207
- // }
208
- this.delay_action_i = null; // index of delay action currently being performed
209
- this.delay_prev_timer_time = 0; // for counting time while performing delay_actions
210
- this.delay_current_milliseconds_left = 0; // time left before the next action, runs down
211
- this.delay_total_milliseconds_left = 0; // for indication: total estimated time for all actions, runs up and down
212
- };
213
-
214
- Test.AnotherWay._test_object_t.prototype.ok = function(cond, name){
215
- if (cond) {
216
- ++this.n_ok;
217
- cond = 1;
218
- }
219
- else {
220
- ++this.n_fail;
221
- cond = 0;
222
- }
223
- this.assertions.push({
224
- ok: cond,
225
- name: name
226
- });
227
- };
228
- Test.AnotherWay._test_object_t.prototype.fail = function(name){
229
- this.ok(false, name);
230
- };
231
- Test.AnotherWay._test_object_t.prototype.plan = function(n){
232
- this.n_plan = n;
233
- };
234
- Test.AnotherWay._test_object_t.prototype.wait_result = function(seconds){
235
- this.wait_result_milliseconds = 1000 * seconds;
236
- };
237
- Test.AnotherWay._eq_fail_msg = function(path, what, expected, got){
238
- return "eq: " + path + " " + what + " differ: got " + got + ", but expected " + expected;
239
- };
240
- Test.AnotherWay._array_eq = function(expected, got, path, msg){
241
- if (expected.length != got.length) {
242
- msg.msg = Test.AnotherWay._eq_fail_msg(path, "array length", expected.length, got.length);
243
- return false;
244
- }
245
- for (var i = 0; i < expected.length; ++i) {
246
- if (!Test.AnotherWay._thing_eq(expected[i], got[i], path + "[" + i + "]", msg)) {
247
- return false;
248
- }
249
- }
250
- return true;
251
- };
252
- Test.AnotherWay._object_eq = function(expected, got, path, msg){
253
- var v;
254
- for (v in expected) {
255
- if (!(v in got)) {
256
- msg.msg = Test.AnotherWay._eq_fail_msg(path + "." + v, "properties", expected[v], "undefined");
257
- return false;
258
- }
259
- if (!Test.AnotherWay._thing_eq(expected[v], got[v], path + "." + v, msg)) {
260
- return false;
261
- }
262
- }
263
- for (v in got) {
264
- if (!(v in expected)) {
265
- msg.msg = Test.AnotherWay._eq_fail_msg(path + "." + v, "properties", "undefined", got[v]);
266
- return false;
267
- }
268
- }
269
- return true;
270
- };
271
-
272
- Test.AnotherWay._constructor_name = function(x){
273
- if (x == null) {
274
- return "";
275
- }
276
- var s = "unknown";
277
- try {
278
- s = typeof(x.constructor);
279
- if (s != "unknown") {
280
- s = x.constructor.toString();
281
- }
282
- }
283
- catch (e) {
284
- s = "unknown";
285
- }
286
- if (s == "unknown") {
287
- // hackish attempt to guess a type
288
- var is_array = true;
289
- var index = 0;
290
- for (i in x) {
291
- if (i != index) {
292
- is_array = false;
293
- }
294
- ++index;
295
- }
296
- return is_array ? "Array" : "Object"; // for empty arrays/objects, this will be wrong half the time
297
- }
298
- else
299
- if (s.match(/^\s*function\s+(\w+)\s*\(/)) {
300
- return RegExp.$1;
301
- }
302
- else {
303
- var c = '';
304
- switch (typeof x) {
305
- case 'string':
306
- c = 'String';
307
- break;
308
- case 'object':
309
- c = 'Object';
310
- break;
311
- default:
312
- c = '';
313
- }
314
- return c;
315
- }
316
- };
317
- Test.AnotherWay._is_array = function(x){
318
- return Test.AnotherWay._constructor_name(x) == "Array";
319
- };
320
-
321
- Test.AnotherWay._is_value_type = function(x){
322
- cn = Test.AnotherWay._constructor_name(x);
323
- return cn == "Number" || cn == "String" || cn == "Boolean" || cn == "Date";
324
- };
325
-
326
- Test.AnotherWay._thing_eq = function(expected, got, path, msg){
327
- if (expected == null && got == null) {
328
- return true;
329
- }
330
- else
331
- if ((expected == null && got != null) || (expected != null && got == null)) {
332
- msg.msg = Test.AnotherWay._eq_fail_msg(path, "values", expected, got);
333
- return false;
334
- }
335
- else {
336
- var expected_cn = Test.AnotherWay._constructor_name(expected);
337
- var got_cn = Test.AnotherWay._constructor_name(got);
338
- if (expected_cn != got_cn) {
339
- msg.msg = Test.AnotherWay._eq_fail_msg(path, "types", expected_cn, got_cn);
340
- return false;
341
- }
342
- else {
343
- if (Test.AnotherWay._is_array(expected)) {
344
- return Test.AnotherWay._array_eq(expected, got, path, msg);
345
- }
346
- else
347
- if (Test.AnotherWay._is_value_type(expected)) {
348
- if (expected != got) {
349
- msg.msg = Test.AnotherWay._eq_fail_msg(path, "values", expected, got);
350
- return false;
351
- }
352
- else {
353
- return true;
354
- }
355
- }
356
- else { // just a plain object
357
- return Test.AnotherWay._object_eq(expected, got, path, msg);
358
- }
359
- }
360
- }
361
- };
362
-
363
- Test.AnotherWay._test_object_t.prototype.eq = function(got, expected, name){
364
- var msg = {};
365
- if (Test.AnotherWay._thing_eq(expected, got, "", msg)) {
366
- this.ok(1, name);
367
- }
368
- else {
369
- this.fail(name + ". " + msg.msg);
370
- }
371
- };
372
-
373
- Test.AnotherWay._test_object_t.prototype.like = function(got, expected, name){
374
- if (got.match(expected) != null) {
375
- this.ok(1, name);
376
- }
377
- else {
378
- this.fail(name + ": got " + got + ", but expected it to match: " + expected);
379
- }
380
- };
381
-
382
- Test.AnotherWay._g_html_eq_span = null;
383
- Test.AnotherWay._html_eq_string_to_node = function(string_or_node, what, msg){
384
- if (string_or_node.nodeType != null) {
385
- string_or_node = Test.AnotherWay._html_eq_node_to_string(string_or_node); // double trip - to make properties assigned in scripts available as html node attributes
386
- }
387
- if (Test.AnotherWay._g_html_eq_span == null) {
388
- Test.AnotherWay._g_html_eq_span = document.createElement("span");
389
- }
390
- Test.AnotherWay._g_html_eq_span.innerHTML = string_or_node;
391
- if (Test.AnotherWay._g_html_eq_span.childNodes.length != 1) {
392
- msg.msg = "bad " + what + " html string given (should contain exactly one outermost element): " + string_or_node;
393
- }
394
- return Test.AnotherWay._g_html_eq_span.childNodes[0].cloneNode(true);
395
- };
396
-
397
- Test.AnotherWay._html_eq_node_to_string = function(node){
398
- if (Test.AnotherWay._g_html_eq_span == null) {
399
- Test.AnotherWay._g_html_eq_span = document.createElement("span");
400
- }
401
- Test.AnotherWay._g_html_eq_span.innerHTML = "";
402
- if (node.outerHTML != null) {
403
- Test.AnotherWay._g_html_eq_span.innerHTML = node.outerHTML;
404
- }
405
- else {
406
- var clone = node.cloneNode(true);
407
- var node = Test.AnotherWay._g_html_eq_span;
408
- if (node.ownerDocument && node.ownerDocument.importNode) {
409
- if (node.ownerDocument != clone.ownerDocument) {
410
- clone = node.ownerDocument.importNode(clone, true);
411
- }
412
- }
413
- node.appendChild(clone);
414
- }
415
- return Test.AnotherWay._g_html_eq_span.innerHTML;
416
- };
417
-
418
- Test.AnotherWay._html_eq_path_msg = function(path){
419
- var msg = "";
420
- for (var i = 0; i < path.length; ++i) {
421
- msg += " [node " + path[i].node;
422
- if (path[i].id != null && path[i].id != "") {
423
- msg += " id " + path[i].id;
424
- }
425
- else
426
- if (path[i].index != null) {
427
- msg += " at index " + path[i].index;
428
- }
429
- msg += "] ";
430
- }
431
- return msg;
432
- };
433
-
434
- Test.AnotherWay._html_eq_fail_msg = function(path, what, expected, got){
435
- return Test.AnotherWay._html_eq_path_msg(path) + ": " + what + " differ: got " + got + ", but expected " + expected;
436
- };
437
-
438
- Test.AnotherWay._html_eq_remove_blank = function(text){
439
- if (text == null) {
440
- return "";
441
- }
442
- else
443
- if (text.match("^(\\s*)(.*\\S)(\\s*)$")) {
444
- return RegExp.$2;
445
- }
446
- else
447
- if (text.match("\s*")) {
448
- return "";
449
- }
450
- return text;
451
- };
452
-
453
- Test.AnotherWay._html_eq_remove_blank_nodes = function(node){
454
- var to_remove = [];
455
- for (var child = node.firstChild; child != null; child = child.nextSibling) {
456
- if (child.nodeType == 3) {
457
- var value = Test.AnotherWay._html_eq_remove_blank(child.nodeValue);
458
- if (value == "") {
459
- to_remove.push(child);
460
- }
461
- else {
462
- child.nodeValue = value;
463
- }
464
- }
465
- }
466
- for (var i = 0; i < to_remove.length; ++i) {
467
- node.removeChild(to_remove[i]);
468
- }
469
- };
470
-
471
- Test.AnotherWay._html_node_type_text = function(node_type){
472
- if (node_type == 1) {
473
- return "1 (html element)";
474
- }
475
- else
476
- if (node_type == 3) {
477
- return "3 (text)";
478
- }
479
- else {
480
- return node_type;
481
- }
482
- };
483
-
484
- Test.AnotherWay._html_eq_node = function(expected, got, path, msg, expected_loc_base, got_loc_base){
485
- if (expected.nodeType != got.nodeType) {
486
- msg.msg = Test.AnotherWay._html_eq_fail_msg(path, "node types", Test.AnotherWay._html_node_type_text(expected.nodeType), Test.AnotherWay._html_node_type_text(got.nodeType));
487
- return false;
488
- }
489
- else
490
- if (expected.nodeType == 3) {
491
- if (expected.nodeValue != got.nodeValue) {
492
- msg.msg = Test.AnotherWay._html_eq_fail_msg(path, "text", expected.nodeValue, got.nodeValue);
493
- return false;
494
- }
495
- }
496
- else
497
- if (expected.nodeType == 1) {
498
- if (expected.nodeName != got.nodeName) {
499
- msg.msg = Test.AnotherWay._html_eq_fail_msg(path, "node names", expected.nodeName, got.nodeName);
500
- return false;
501
- }
502
- // compare attributes
503
- var expected_attrs = {};
504
- var got_attrs = {};
505
- var i;
506
- var a;
507
- for (i = 0; i < expected.attributes.length; ++i) {
508
- a = expected.attributes[i];
509
- if (a.specified) {
510
- expected_attrs[a.name] = 1;
511
- }
512
- }
513
- for (i = 0; i < got.attributes.length; ++i) {
514
- a = got.attributes[i];
515
- if (a.specified) {
516
- got_attrs[a.name] = 1;
517
- }
518
- }
519
- for (a in expected_attrs) {
520
- if (!(a in got_attrs)) {
521
- msg.msg = Test.AnotherWay._html_eq_path_msg(path) + ": attribute sets differ: expected attribute " + a + " is missing";
522
- return false;
523
- }
524
- }
525
- for (a in got_attrs) {
526
- if (!(a in expected_attrs)) {
527
- msg.msg = Test.AnotherWay._html_eq_path_msg(path) + ": attribute sets differ: got extra attribute " + a;
528
- return false;
529
- }
530
- }
531
- for (a in expected_attrs) {
532
- var expected_value = expected.getAttribute(a);
533
- var got_value = got.getAttribute(a);
534
- if (typeof(expected_value) == "string" && typeof(got_value) == "string") {
535
- expected_value = Test.AnotherWay._html_eq_remove_blank(expected_value);
536
- got_value = Test.AnotherWay._html_eq_remove_blank(got_value);
537
- var ok = expected_value == got_value;
538
- if (!ok && (a == "href" || a == "HREF")) { // try relative hrefs
539
- var expected_relative_value = expected_value;
540
- if (expected_loc_base != null && expected_value.substring(0, expected_loc_base.length) == expected_loc_base) {
541
- expected_relative_value = expected_value.substring(expected_loc_base.length);
542
- }
543
- var got_relative_value = got_value;
544
- if (got_loc_base != null && got_value.substring(0, got_loc_base.length) == got_loc_base) {
545
- got_relative_value = got_value.substring(got_loc_base.length);
546
- }
547
- ok = expected_relative_value == got_relative_value;
548
- }
549
- if (!ok) {
550
- msg.msg = Test.AnotherWay._html_eq_fail_msg(path, "attribute " + a + " values", expected_value, got_value);
551
- return false;
552
- }
553
- }
554
- else
555
- if (typeof(expected_value) == "function" && typeof(got_value) == "function") {
556
- expected_value = expected_value.toString();
557
- got_value = got_value.toString();
558
- if (expected_value != got_value) {
559
- msg.msg = Test.AnotherWay._html_eq_fail_msg(path, "attribute " + a + " values", expected_value, got_value);
560
- return false;
561
- }
562
- }
563
- else {
564
- var value_msg = {};
565
- if (!Test.AnotherWay._thing_eq(expected_value, got_value, "", value_msg)) {
566
- msg.msg = Test.AnotherWay._html_eq_path_msg(path) + ": attribute " + a + " values differ: " + value_msg.msg;
567
- return false;
568
- }
569
- }
570
- }
571
- // compare child nodes
572
- Test.AnotherWay._html_eq_remove_blank_nodes(expected);
573
- Test.AnotherWay._html_eq_remove_blank_nodes(got);
574
- var expected_length = expected.childNodes.length;
575
- var got_length = got.childNodes.length;
576
- if (expected_length < got_length) {
577
- msg.msg = Test.AnotherWay._html_eq_path_msg(path) + ": got " + (got_length - expected_length) + " extra child nodes";
578
- return false;
579
- }
580
- else
581
- if (expected_length > got_length) {
582
- msg.msg = Test.AnotherWay._html_eq_path_msg(path) + ": expected " + (expected_length - got_length) + " more child nodes";
583
- return false;
584
- }
585
- else {
586
- for (i = 0; i < expected_length; ++i) {
587
- var expected_node = expected.childNodes[i];
588
- path.push({
589
- node: expected_node.nodeName,
590
- id: expected_node.id,
591
- index: i
592
- });
593
- var eq = Test.AnotherWay._html_eq_node(expected_node, got.childNodes[i], path, msg, expected_loc_base, got_loc_base);
594
- path.pop();
595
- if (!eq) {
596
- return false;
597
- }
598
- }
599
- }
600
- }
601
- return true;
602
- };
603
-
604
- Test.AnotherWay._html_eq_get_loc_base = function(node){
605
- var loc_base = document.location;
606
- if (node.ownerDocument != null) {
607
- loc_base = node.ownerDocument.location;
608
- }
609
- if (loc_base != null) {
610
- loc_base = loc_base.href;
611
- var slash_pos = loc_base.lastIndexOf("/");
612
- if (slash_pos != -1) {
613
- loc_base = loc_base.substring(0, slash_pos + 1);
614
- }
615
- }
616
- return loc_base;
617
- };
618
-
619
- Test.AnotherWay._test_object_t.prototype.html_eq = function(got, expected, name){
620
- var msg = {};
621
- var expected_node = Test.AnotherWay._html_eq_string_to_node(expected, "expected", msg);
622
- if (msg.msg != null) {
623
- this.fail(name + " html_eq: " + msg.msg);
624
- }
625
- else {
626
- var got_node = Test.AnotherWay._html_eq_string_to_node(got, "got", msg);
627
- if (msg.msg != null) {
628
- this.fail(name + " html_eq: " + msg.msg);
629
- }
630
- else {
631
- var expected_loc_base = Test.AnotherWay._html_eq_get_loc_base(expected);
632
- var got_loc_base = Test.AnotherWay._html_eq_get_loc_base(got);
633
- if (Test.AnotherWay._html_eq_node(expected_node, got_node, [], msg, expected_loc_base, got_loc_base)) {
634
- this.ok(1, name);
635
- }
636
- else {
637
- var msg = name + " html_eq " + msg.msg;
638
- var expected_str = Test.AnotherWay._html_eq_node_to_string(expected_node);
639
- var got_str = Test.AnotherWay._html_eq_node_to_string(got_node);
640
- msg += ".\n got html: " + got_str;
641
- msg += ".\n expected html: " + expected_str;
642
- this.fail(msg);
643
- }
644
- }
645
- }
646
- };
647
-
648
- Test.AnotherWay._debug_pane_print = function(msg){
649
- var d = new Date();
650
- var p = document.createElement("p");
651
- p.appendChild(document.createTextNode(d.toLocaleTimeString() + " " + msg));
652
- var debug_pane = document.getElementById("debug");
653
- debug_pane.appendChild(p);
654
- var debug_tab = document.getElementById("debug_tab");
655
- var results_tab = document.getElementById("results_tab");
656
- debug_tab.style.visibility = "visible";
657
- results_tab.style.visibility = "visible";
658
- };
659
-
660
- Test.AnotherWay._test_object_t.prototype.debug_print = function(msg){
661
- Test.AnotherWay._debug_pane_print(this.name + ": " + msg);
662
- };
663
-
664
- Test.AnotherWay._test_object_t.prototype.delay_call = function(){
665
- var timeout_ms = 200;
666
- for (var i = 0; i < arguments.length; ++i) {
667
- if (typeof(arguments[i]) != "function") {
668
- timeout_ms = 1000 * arguments[i];
669
- }
670
- else {
671
- var action = {
672
- action_kind: "call",
673
- call_delay_milliseconds: timeout_ms,
674
- call_fn: arguments[i]
675
- };
676
- this.delay_total_milliseconds_left += Test.AnotherWay._action_estimate_milliseconds(action);
677
- this.delay_actions.push(action);
678
- }
679
- }
680
- };
681
-
682
- Test.AnotherWay._test_object_t.prototype.open_window = function(url, fn, timeout_seconds){
683
- if (timeout_seconds == null) {
684
- timeout_seconds = 4;
685
- }
686
- var no_close = document.getElementById("dont_close_test_windows");
687
- var action = {
688
- action_kind: "window",
689
- wnd_url: url.toString() + (window.location.search || ""),
690
- wnd_wnd: null,
691
- wnd_fn: fn,
692
- wnd_timeout_milliseconds: timeout_seconds * 1000,
693
- wnd_no_close: no_close.checked
694
- };
695
- this.delay_total_milliseconds_left += Test.AnotherWay._action_estimate_milliseconds(action);
696
- this.delay_actions.push(action);
697
- };
698
-
699
- Test.AnotherWay._test_object_t.prototype.replay_events = function(wnd, events){
700
- if (Test.AnotherWay._g_no_record_msg != null) {
701
- this.fail("replay_events: " + Test.AnotherWay._g_no_record_msg);
702
- }
703
- else {
704
- var action = {
705
- action_kind: "replay",
706
- replay_wnd: wnd,
707
- replay_events: events.events,
708
- replay_event_i: null,
709
- replay_checkpoints: events.checkpoints
710
- };
711
- this.delay_total_milliseconds_left += Test.AnotherWay._action_estimate_milliseconds(action);
712
- this.delay_actions.push(action);
713
- }
714
- };
715
-
716
- Test.AnotherWay._action_estimate_milliseconds = function(action){
717
- var ms = 0;
718
- if (action.action_kind == "call") {
719
- ms = action.call_delay_milliseconds;
720
- }
721
- else
722
- if (action.action_kind == "window") {
723
- ms = 0;
724
- }
725
- else
726
- if (action.action_kind == "replay") {
727
- ms = 0;
728
- for (var i = 0; i < action.replay_events.length; ++i) {
729
- ms += action.replay_events[i]["time"] - 0;
730
- }
731
- }
732
- return ms;
733
- };
734
-
735
- Test.AnotherWay._g_timeout_granularity = 200;
736
- Test.AnotherWay._g_tests_queue = []; // vector of { url: string, test_objects : array of test_object_t, test_object_i: int, wait_msg: <p> object, loading_timeout_milliseconds: int, timeout_id: id }
737
- // load one html page, schedule further processing
738
- Test.AnotherWay._run_test_page = function(id, called_from_outside){
739
- if (id.match(/^test(\d+)/)) {
740
- id = RegExp.$1;
741
- Test.AnotherWay._g_tests_queue.push({
742
- url: Test.AnotherWay._g_test_page_urls[id].url,
743
- convention: Test.AnotherWay._g_test_page_urls[id].convention,
744
- test_objects: []
745
- });
746
- if (Test.AnotherWay._g_tests_queue.length == 1) {
747
- if (!called_from_outside) {
748
- // Crap. Be careful stepping around.
749
- // For Mozilla and Opera, when this file is included into the frameset page that is in another directory (and _g_outside_path_correction!=null)
750
- // but the test pages are started from within it (by "run" buttons), then:
751
- // depending on whether the page is the first one loaded into the test frame or not,
752
- // the base url for relative test pages differs.
753
- // Crap, like I said.
754
- Test.AnotherWay._g_tests_queue[0].suppress_outside_path_correction = true;
755
- }
756
- Test.AnotherWay._start_loading_page();
757
- }
758
- }
759
- };
760
-
761
- Test.AnotherWay._load_next_page = function(){
762
- Test.AnotherWay._g_tests_queue.splice(0, 1);
763
- if (Test.AnotherWay._g_tests_queue.length > 0) {
764
- Test.AnotherWay._start_loading_page();
765
- }
766
- else {
767
- if (!Test.AnotherWay._g_test_frame_no_clear) {
768
- Test.AnotherWay._g_test_iframe.location.replace("about:blank");
769
- }
770
- }
771
- };
772
-
773
- Test.AnotherWay._g_opera_path_correction = null; // ugly wart to support opera
774
- Test.AnotherWay._g_outside_path_correction = null; // ugly wart to accomodate Opera and Mozilla, where relative url relates to the directory where the page that calls this function is located
775
- Test.AnotherWay._set_iframe_location = function(iframe, loc, outside_path_correction){
776
- // allow to load only locations with the same origin
777
- var proto_end = loc.indexOf("://");
778
- if (proto_end != -1) { // otherwise, it's safe to assume (for Opera, Mozilla and IE ) that loc will be treated as relative
779
- var main_loc = window.location.href;
780
- var host_end = loc.substring(proto_end + 3).indexOf("/");
781
- var ok = false;
782
- if (host_end != -1) {
783
- var loc_origin = loc.substring(0, proto_end + 3 + host_end + 1);
784
- if (main_loc.length >= loc_origin.length && main_loc.substring(0, loc_origin.length) == loc_origin) {
785
- ok = true;
786
- }
787
- }
788
- if (!ok) {
789
- return {
790
- msg: "test pages may have only urls with the same origin as " + main_loc
791
- };
792
- }
793
- }
794
- // opera cannot handle urls relative to file:// without assistance
795
- if (window.opera != null && window.location.protocol == "file:" && loc.indexOf(":") == -1) {
796
- var base = window.location.href;
797
- var q_pos = base.indexOf("?");
798
- if (q_pos != -1) {
799
- base = base.substring(0, q_pos);
800
- }
801
- var slash_pos = base.lastIndexOf("/");
802
- if (slash_pos != -1) {
803
- base = base.substring(0, slash_pos + 1);
804
- Test.AnotherWay._g_opera_path_correction = base;
805
- loc = base + loc;
806
- }
807
- }
808
- // if this function is called from another page, and if that page is in another directory, correction is needed
809
- if (outside_path_correction != null) {
810
- var pos = loc.indexOf(outside_path_correction);
811
- if (pos == 0) {
812
- loc = loc.substring(outside_path_correction.length + 1);
813
- }
814
- }
815
- if (iframe.location != null) {
816
- iframe.location.replace(loc);
817
- }
818
- else {
819
- iframe.src = loc;
820
- }
821
- return {};
822
- };
823
-
824
- Test.AnotherWay._start_loading_page = function(){
825
- var test_page = Test.AnotherWay._g_tests_queue[0];
826
- test_page.loading_timeout_milliseconds = 12000;
827
- test_page.timeout_id = setTimeout(Test.AnotherWay._loading_timeout, Test.AnotherWay._g_timeout_granularity);
828
- test_page.wait_msg = Test.AnotherWay._print_counter_result(test_page.url, "loading...", test_page.loading_timeout_milliseconds, "loading");
829
- if (test_page.convention == "jsan") {
830
- // the tests in that page will run when it's loading, so the test object must be ready
831
- Test.AnotherWay._g_test_object_for_jsan = new Test.AnotherWay._test_object_t(test_page.url);
832
- }
833
- var outside_path_correction = null;
834
- if (Test.AnotherWay._g_outside_path_correction != null && !test_page.suppress_outside_path_correction) {
835
- outside_path_correction = Test.AnotherWay._g_outside_path_correction;
836
- }
837
- var result = Test.AnotherWay._set_iframe_location(Test.AnotherWay._g_test_iframe, test_page.url, outside_path_correction);
838
- if (result.msg != null) {
839
- Test.AnotherWay._unprint_result(test_page.wait_msg);
840
- Test.AnotherWay._print_result(test_page.url, result.msg, "badtest", null);
841
- Test.AnotherWay._load_next_page();
842
- }
843
- };
844
-
845
- Test.AnotherWay._loading_timeout = function(){
846
- var test_page = Test.AnotherWay._g_tests_queue[0];
847
- test_page.loading_timeout_milliseconds -= Test.AnotherWay._g_timeout_granularity;
848
- if (test_page.loading_timeout_milliseconds > 0) {
849
- Test.AnotherWay._update_msg_counter(test_page.wait_msg, (test_page.loading_timeout_milliseconds / 1000).toFixed());
850
- test_page.timeout_id = setTimeout(Test.AnotherWay._loading_timeout, Test.AnotherWay._g_timeout_granularity);
851
- }
852
- else {
853
- Test.AnotherWay._unprint_result(test_page.wait_msg);
854
- Test.AnotherWay._print_result(test_page.url, "Unable to load test page. Timeout expired", "badtest", null);
855
- Test.AnotherWay._load_next_page();
856
- }
857
- };
858
-
859
- Test.AnotherWay._strip_query_and_hash = function(s){
860
- var i = s.lastIndexOf("#");
861
- if (i != -1) {
862
- s = s.substring(0, i);
863
- }
864
- i = s.lastIndexOf("?");
865
- if (i != -1) {
866
- s = s.substring(0, i);
867
- }
868
- return s;
869
- };
870
-
871
- Test.AnotherWay._is_url_loaded = function(url, wnd){
872
- var loaded = false;
873
- if (wnd != null && wnd.location != null) {
874
- // after some popup blocker interference, location may behave strange..
875
- var location_s = "";
876
- location_s += wnd.location;
877
- if (location_s != "") {
878
- var pathname = wnd.location.pathname;
879
- var expected_url = url;
880
- var i = expected_url.lastIndexOf("#");
881
- if (i != -1) {
882
- expected_url = expected_url.substring(0, i);
883
- }
884
- i = expected_url.lastIndexOf("?");
885
- if (i != -1) {
886
- expected_url = expected_url.substring(0, i);
887
- }
888
- i = expected_url.lastIndexOf("/");
889
- if (i != -1 && i != expected_url.length - 1) {
890
- expected_url = expected_url.substring(i + 1);
891
- }
892
- i = pathname.indexOf(expected_url);
893
- if (wnd.location.href == url || (i != -1 && i == pathname.length - expected_url.length)) {
894
- if ( /*window.opera==null*/wnd.document.readyState == null || wnd.document.readyState == "complete") { // for opera (and IE?), getElementById does not work until..
895
- loaded = true;
896
- }
897
- }
898
- }
899
- }
900
- return loaded;
901
- };
902
- // find and run all test functions in the g_cur_page html page.
903
- Test.AnotherWay._test_page_onload = function(){
904
- if (Test.AnotherWay._g_tests_queue.length == 0) {
905
- return;
906
- }
907
- var test_page = Test.AnotherWay._g_tests_queue[0];
908
- if (!Test.AnotherWay._is_url_loaded(test_page.url, Test.AnotherWay._g_test_iframe)) {
909
- return;
910
- }
911
- clearTimeout(test_page.timeout_id);
912
- Test.AnotherWay._unprint_result(test_page.wait_msg);
913
-
914
- if (test_page.convention == "anotherway") {
915
- // get test function names (those beginning with "test")
916
- if (typeof(Test.AnotherWay._g_test_iframe.document.scripts) != 'undefined') { // IE
917
- for (var i = 0; i < Test.AnotherWay._g_test_iframe.document.scripts.length; ++i) {
918
- var script_text = Test.AnotherWay._g_test_iframe.document.scripts[i].text;
919
- var fun_sig = "function test";
920
- var fun_start = script_text.indexOf(fun_sig);
921
-
922
- while (fun_start != -1) {
923
- script_text = script_text.substring(fun_start, script_text.length);
924
- var fun_end = script_text.indexOf('(');
925
- var fun_name = script_text.substring("function ".length, fun_end);
926
- var whitespace = fun_name.indexOf(' ');
927
- if (whitespace >= 0) {
928
- fun_name = fun_name.substring(0, whitespace);
929
- }
930
- test_page.test_objects.push(new Test.AnotherWay._test_object_t(fun_name));
931
- script_text = script_text.substring(fun_end, script_text.length);
932
- fun_start = script_text.indexOf(fun_sig);
933
- }
934
- }
935
- }
936
- else { // otherwise (not IE) it ought to work like this
937
- for (var i in Test.AnotherWay._g_test_iframe) {
938
- // Hack to prevent failure in FF3.0b1 (innerWidth/innerHeight) and FF>=3.5 (sessionStorage)
939
- if (i == "innerWidth" || i == "innerHeight" || i == "sessionStorage") {
940
- continue;
941
- }
942
- if (typeof(Test.AnotherWay._g_test_iframe[i]) == 'function') {
943
- if (i.substring(0, 4) == "test") {
944
- test_page.test_objects.push(new Test.AnotherWay._test_object_t(i));
945
- }
946
- }
947
- }
948
- }
949
- }
950
- else
951
- if (test_page.convention == "jsan") {
952
- // the test object is already filled with results
953
- test_page.test_objects.push(Test.AnotherWay._g_test_object_for_jsan);
954
- }
955
-
956
- if (test_page.test_objects.length == 0) {
957
- Test.AnotherWay._print_result(test_page.url, "No test functions defined in the page", "badtest", null);
958
- Test.AnotherWay._load_next_page();
959
- return;
960
- }
961
-
962
- test_page.wait_msg = Test.AnotherWay._print_result(test_page.url, "running tests..<span class=\"counter\">" + test_page.test_objects.length + "</span>", "running", null);
963
-
964
- test_page.test_object_i = 0;
965
- Test.AnotherWay._run_more_tests();
966
- };
967
-
968
- Test.AnotherWay._handle_exception = function(o, e, title){
969
- var s = title + ": " + typeof(e) + ": ";
970
- if (e.message != null) {
971
- s += e.message;
972
- }
973
- else
974
- if (e.description != null) {
975
- s += e.description;
976
- }
977
- else {
978
- s += e.toString();
979
- }
980
- // if( e.location!=null ) { // XXX figure out how to display exception location if it's present (like in mozilla)
981
- // s+=" location: "+e.location.toString();
982
- // }
983
- o.exception = s;
984
- s = [];
985
- if (e.stack) {
986
- var lines = e.stack.split("\n");
987
- for (var i = 0; i < lines.length; ++i) {
988
- // format of the line: func_name(args)@file_name:line_no
989
- if (lines[i].match(/(\w*)\(([^\)]*)\)@(.*):([^:]*)$/)) {
990
- var func_name = RegExp.$1;
991
- if (func_name.length == 0) {
992
- func_name = "<anonymous>";
993
- }
994
- s.push("in " + func_name + "( " + RegExp.$2 + ") at " + RegExp.$3 + " line " + RegExp.$4 + "\n");
995
- }
996
- }
997
- }
998
- o.exception_stack = s;
999
- };
1000
-
1001
- Test.AnotherWay._run_more_tests = function(){
1002
- var test_page = Test.AnotherWay._g_tests_queue[0];
1003
- while (test_page.test_object_i < test_page.test_objects.length) {
1004
- Test.AnotherWay._update_msg_counter(test_page.wait_msg, (1 + test_page.test_object_i) + "/" + test_page.test_objects.length);
1005
- var o = test_page.test_objects[test_page.test_object_i];
1006
- if (test_page.convention == "anotherway") {
1007
- try {
1008
- Test.AnotherWay._g_test_iframe[o.name](o);
1009
- }
1010
- catch (e) {
1011
- Test.AnotherWay._handle_exception(o, e, "");
1012
- }
1013
- } // for "jsan" convention, test has run already
1014
- if (o.delay_actions.length > 0 || o.wait_result_milliseconds > 0) {
1015
- o.delay_total_milliseconds_left += o.wait_result_milliseconds;
1016
- Test.AnotherWay._delay_actions_timeout();
1017
- return;
1018
- }
1019
- ++test_page.test_object_i;
1020
- }
1021
- Test.AnotherWay._unprint_result(test_page.wait_msg);
1022
- Test.AnotherWay._print_result(test_page.url, null, null, test_page.test_objects);
1023
- Test.AnotherWay._load_next_page();
1024
- };
1025
-
1026
- Test.AnotherWay._delay_actions_timeout = function(){
1027
- var test_page = Test.AnotherWay._g_tests_queue[0];
1028
- var test_object = test_page.test_objects[test_page.test_object_i];
1029
- var finished = true;
1030
- if (test_object.delay_action_i == null) {
1031
- // set up to start first action
1032
- test_object.delay_action_i = -1;
1033
- }
1034
- else {
1035
- // perform current action
1036
- var milliseconds_passed = (new Date()).getTime() - test_object.delay_prev_timer_time;
1037
- test_object.delay_current_milliseconds_left -= milliseconds_passed;
1038
- test_object.delay_total_milliseconds_left -= milliseconds_passed;
1039
- finished = Test.AnotherWay._delay_continue_action(test_object, milliseconds_passed);
1040
- }
1041
- while (finished && test_object.delay_action_i < test_object.delay_actions.length) {
1042
- ++test_object.delay_action_i; // start next action
1043
- finished = Test.AnotherWay._delay_start_action(test_object);
1044
- }
1045
- if (test_object.delay_action_i <= test_object.delay_actions.length) { // any more actions left ?
1046
- test_object.delay_prev_timer_time = (new Date()).getTime();
1047
- var next_timeout = Test.AnotherWay._g_timeout_granularity;
1048
- if (test_object.delay_current_milliseconds_left < next_timeout) {
1049
- next_timeout = test_object.delay_current_milliseconds_left;
1050
- }
1051
- if (test_object.second_wait_msg != null) {
1052
- Test.AnotherWay._update_msg_counter(test_object.second_wait_msg, (test_object.delay_total_milliseconds_left / 1000).toFixed());
1053
- }
1054
- setTimeout(Test.AnotherWay._delay_actions_timeout, next_timeout);
1055
- }
1056
- else { // no more actions left. run the next test.
1057
- if (test_object.second_wait_msg != null) {
1058
- Test.AnotherWay._unprint_result(test_object.second_wait_msg);
1059
- test_object.second_wait_msg = null;
1060
- }
1061
- ++test_page.test_object_i;
1062
- Test.AnotherWay._run_more_tests();
1063
- }
1064
- };
1065
-
1066
- Test.AnotherWay._delay_start_action = function(test_object){
1067
- var finished = false;
1068
- var wait_msg = "";
1069
- if (test_object.delay_action_i == test_object.delay_actions.length) {
1070
- if (test_object.wait_result_milliseconds > 0) {
1071
- test_object.delay_current_milliseconds_left = test_object.wait_result_milliseconds; // wait for result
1072
- wait_msg = "waiting for results..";
1073
- }
1074
- else {
1075
- ++test_object.delay_action_i; // dont wait for result
1076
- }
1077
- }
1078
- else {
1079
- var action = test_object.delay_actions[test_object.delay_action_i];
1080
- if (action.action_kind == "call") {
1081
- test_object.delay_current_milliseconds_left = action.call_delay_milliseconds;
1082
- wait_msg = "performing delayed calls..";
1083
- }
1084
- else
1085
- if (action.action_kind == "window") {
1086
- if (Test.AnotherWay._g_opera_path_correction != null && action.wnd_url.indexOf(":") == -1) {
1087
- action.wnd_url = Test.AnotherWay._g_opera_path_correction + action.wnd_url;
1088
- }
1089
- action.wnd_wnd = window.open(action.wnd_url, "_blank");
1090
- if (action.wnd_wnd == null) {
1091
- finished = true;
1092
- test_object.fail("unable to open window for " + action.wnd_url);
1093
- }
1094
- else {
1095
- test_object.delay_current_milliseconds_left = action.wnd_timeout_milliseconds;
1096
- wait_msg = "opening window..";
1097
- }
1098
- }
1099
- else
1100
- if (action.action_kind == "replay") {
1101
- if (action.replay_events.length == 0) {
1102
- finished = true;
1103
- }
1104
- else {
1105
- action.replay_event_i = 0;
1106
- test_object.delay_current_milliseconds_left = action.replay_events[0]["time"];
1107
- wait_msg = "replaying events..";
1108
- }
1109
- }
1110
- }
1111
- if (test_object.second_wait_msg != null) {
1112
- Test.AnotherWay._unprint_result(test_object.second_wait_msg);
1113
- }
1114
- if (wait_msg != "") {
1115
- var test_page = Test.AnotherWay._g_tests_queue[0];
1116
- test_object.second_wait_msg = Test.AnotherWay._print_counter_result(test_page.url, wait_msg, test_object.delay_total_milliseconds_left, "waiting");
1117
- }
1118
- else {
1119
- test_object.second_wait_msg = null;
1120
- }
1121
- return finished;
1122
- };
1123
- Test.AnotherWay._delay_continue_action = function(test_object, milliseconds_passed){
1124
- var finished = test_object.delay_current_milliseconds_left <= 0;
1125
- if (test_object.delay_action_i == test_object.delay_actions.length) { // action is "waiting for results"
1126
- if (test_object.n_plan != null && test_object.n_plan == test_object.n_ok + test_object.n_fail) {
1127
- finished = true; // if all assertions results are recorded, don't wait any more
1128
- }
1129
- if (finished) {
1130
- ++test_object.delay_action_i; // move on to the next test
1131
- }
1132
- }
1133
- else {
1134
- var action = test_object.delay_actions[test_object.delay_action_i];
1135
- if (action.action_kind == "call") {
1136
- if (finished) {
1137
- try {
1138
- action.call_fn();
1139
- }
1140
- catch (e) {
1141
- Test.AnotherWay._handle_exception(test_object, e, "in delay_call");
1142
- }
1143
- }
1144
- }
1145
- else
1146
- if (action.action_kind == "window") {
1147
- test_object.delay_total_milliseconds_left += milliseconds_passed; // for "window", the countdown is suspended since it's unknown how long it will take
1148
- if (Test.AnotherWay._is_url_loaded(action.wnd_url, action.wnd_wnd)) {
1149
- try {
1150
- action.wnd_fn(action.wnd_wnd);
1151
- }
1152
- catch (e) {
1153
- Test.AnotherWay._handle_exception(test_object, e, "in open_window function call");
1154
- }
1155
- finished = true;
1156
- }
1157
- else
1158
- if (finished) {
1159
- test_object.fail("unable to open window for url '" + action.wnd_url + "'. timeout expired");
1160
- }
1161
- }
1162
- else
1163
- if (action.action_kind == "replay") {
1164
- if (finished) {
1165
- // try {
1166
- Test.AnotherWay._delay_replay_event(test_object, action.replay_wnd, action.replay_events[action.replay_event_i], action.replay_checkpoints);
1167
- // }catch( e ) { // disabled, until I know how to gel location info from an exception
1168
- // Test.AnotherWay._handle_exception( test_object, e, "while replaying event" );
1169
- // }
1170
- ++action.replay_event_i;
1171
- finished = action.replay_event_i == action.replay_events.length;
1172
- if (!finished) {
1173
- test_object.delay_current_milliseconds_left = action.replay_events[action.replay_event_i]["time"];
1174
- }
1175
- }
1176
- }
1177
- }
1178
- return finished;
1179
- };
1180
-
1181
- Test.AnotherWay._delay_replay_event = function(test_object, wnd, event, checkpoints){
1182
- if (event.type == "_checkpoint") {
1183
- var checkpoint_n = event.which;
1184
- var prev_n_fail = test_object.n_fail;
1185
- checkpoints[checkpoint_n](test_object, wnd);
1186
- var flash_color = prev_n_fail == test_object.n_fail ? "#2f2" : "#f22";
1187
- Test.AnotherWay._record_flash_border(flash_color);
1188
- }
1189
- else
1190
- if (event.type == "click" || event.type == "mouseover" || event.type == "mouseout" || event.type == "mousemove" || event.type == "mousedown" || event.type == "mouseup") {
1191
- var target = Test.AnotherWay._record_node_path_to_node(event["target"], wnd.document);
1192
- if (target != null) {
1193
- Test.AnotherWay._record_control_update_highlight(target, "ball", event);
1194
- var e = wnd.document.createEvent("MouseEvents");
1195
- var related_target = Test.AnotherWay._record_node_path_to_node(event["relatedTarget"], wnd.document);
1196
- e.initMouseEvent(event["type"], event["cancelable"], event["bubbles"], wnd.document.defaultView, event["detail"], event["screenX"], event["screenY"], event["clientX"], event["clientY"], event["ctrlKey"], event["altKey"], event["shiftKey"], event["metaKey"], event["button"], Test.AnotherWay._record_node_path_to_node(event["relatedTarget"], wnd.document));
1197
- // Firefox 1.0.6 somehow loses relatedTarget somewhere on the way. Pass through our own, for those who choose to care.
1198
- e.passThroughRelatedTarget = related_target;
1199
- target.dispatchEvent(e);
1200
- }
1201
- }
1202
- else
1203
- if (event.type == "keyup" || event.type == "keydown" || event.type == "keypress") {
1204
- var e = wnd.document.createEvent("KeyboardEvents"); // forget it. Apparently it's not supported neither by mozilla nor by opera.
1205
- e.initKeyboardEvent(event["type"], event["cancelable"], event["bubbles"], wnd.document.defaultView, event["which"], event["which"], event["ctrlKey"], event["altKey"], event["shiftKey"], event["metaKey"], false);
1206
- wnd.document.dispatchEvent(e);
1207
- }
1208
- };
1209
-
1210
- Test.AnotherWay._print_counter_result = function(url, msg, milliseconds, style){
1211
- return Test.AnotherWay._print_result(url, msg + "<span class=\"counter\">" + (milliseconds / 1000).toFixed() + "</span>", style, null);
1212
- };
1213
-
1214
- Test.AnotherWay._g_result_count = 0; // for assigning unique ids to result paragraphs
1215
- // number of pages tested
1216
- Test.AnotherWay._g_ok_pages = 0;
1217
- Test.AnotherWay._g_fail_pages = 0;
1218
-
1219
- Test.AnotherWay._print_result = function(url, msg, style, test_objects){
1220
- var results = document.getElementById("results");
1221
- var r = results.appendChild(document.createElement("p"));
1222
- r.id = "result" + Test.AnotherWay._g_result_count;
1223
- ++Test.AnotherWay._g_result_count;
1224
- r.onclick = Test.AnotherWay._toggle_detail;
1225
- var text = "<span class=\"bullet\">&nbsp;&nbsp;&nbsp;</span>&nbsp;";
1226
- if (url != "") {
1227
- text += url + ": ";
1228
- }
1229
- if (msg != null) {
1230
- text += msg;
1231
- }
1232
- if (test_objects != null) {
1233
- // compose summary and detail texts
1234
- var total_ok = 0;
1235
- var total_detail_ok = 0;
1236
- var total_fail = 0;
1237
- var total_detail_fail = 0;
1238
- var no_plan = 0;
1239
-
1240
- var detail = results.appendChild(document.createElement("div"));
1241
-
1242
- if (r.id.match(/^result(\d+)$/)) {
1243
- detail.id = "result_detail" + RegExp.$1;
1244
- }
1245
-
1246
- for (var i = 0; i < test_objects.length; ++i) {
1247
- var o = test_objects[i];
1248
- var p;
1249
- var p_text;
1250
- p = document.createElement("P");
1251
- Test.AnotherWay._set_css_class(p, "result_detail");
1252
- p_text = o.name;
1253
- if (o.n_fail > 0 || o.exception || (o.n_plan != null && o.n_plan != o.n_ok + o.n_fail) || (o.n_plan == null && o.n_ok == 0 && o.n_fail == 0)) {
1254
- ++total_fail;
1255
- p_text += " <span class=\"fail\">";
1256
- if (o.n_plan != null && o.n_plan != o.n_ok + o.n_fail) {
1257
- p_text += "planned " + o.n_plan + " assertions but got " + (o.n_ok + o.n_fail) + "; ";
1258
- }
1259
- if (o.n_plan == null && o.n_ok == 0 && o.n_fail == 0) {
1260
- p_text += "test did not output anything";
1261
- }
1262
- else {
1263
- p_text += " fail " + o.n_fail;
1264
- }
1265
- p_text += "</span>";
1266
- }
1267
- else {
1268
- ++total_ok;
1269
- }
1270
- p_text += " ok " + o.n_ok;
1271
- if (o.n_plan == null) {
1272
- no_plan = 1;
1273
- p_text += " <span class=\"warning\">no plan</span>";
1274
- }
1275
- p.innerHTML = p_text;
1276
- detail.appendChild(p);
1277
- if (o.exception) {
1278
- p = document.createElement("P");
1279
- Test.AnotherWay._set_css_class(p, "result_exception_detail");
1280
- p.innerHTML = "<span class=\"fail\">exception:</span> " + o.exception;
1281
- detail.appendChild(p);
1282
- p = document.createElement("P");
1283
- Test.AnotherWay._set_css_class(p, "result_exception_stack_detail");
1284
- p.innerHTML = o.exception_stack.join("<br/>");
1285
- detail.appendChild(p);
1286
- }
1287
- for (var ii = 0; ii < o.assertions.length; ++ii) {
1288
- var oo = o.assertions[ii];
1289
- var status = oo.ok ? "ok" : "<span class=\"fail\">fail</span>";
1290
- p = document.createElement("P");
1291
- Test.AnotherWay._set_css_class(p, "result_micro_detail");
1292
- p.innerHTML = status;
1293
- p.appendChild(document.createTextNode(" " + oo.name));
1294
- detail.appendChild(p);
1295
- }
1296
- total_detail_ok += o.n_ok;
1297
- total_detail_fail += o.n_fail;
1298
- }
1299
- if (total_fail || total_detail_fail) {
1300
- text += " fail " + total_fail;
1301
- }
1302
- text += " ok " + total_ok + " (detailed:";
1303
- if (total_fail || total_detail_fail) {
1304
- text += " fail " + total_detail_fail;
1305
- }
1306
- text += " ok " + total_detail_ok + ")";
1307
- if (no_plan) {
1308
- text += " <span class=\"warning\">no plan</span>";
1309
- }
1310
- style = total_fail == 0 ? "ok" : "fail";
1311
- detail.style.display = style == "fail" ? "block" : "none";
1312
- detail.style.cursor = "text";
1313
- }
1314
- if (style != null) {
1315
- Test.AnotherWay._set_css_class(r, style);
1316
- if (style == "ok") {
1317
- ++Test.AnotherWay._g_ok_pages;
1318
- }
1319
- else
1320
- if (style == "fail" || style == "badtest") {
1321
- ++Test.AnotherWay._g_fail_pages;
1322
- }
1323
- var pages_total = "";
1324
- if (Test.AnotherWay._g_fail_pages > 0) {
1325
- pages_total += " fail " + Test.AnotherWay._g_fail_pages;
1326
- }
1327
- pages_total += " ok " + Test.AnotherWay._g_ok_pages;
1328
-
1329
- // also count out the total number of tests in fail and ok
1330
- Test.AnotherWay._openlayers_sum_total_detail_ok = Test.AnotherWay._openlayers_sum_total_detail_ok || 0;
1331
- Test.AnotherWay._openlayers_sum_total_detail_ok += (total_detail_ok||0);
1332
-
1333
- Test.AnotherWay._openlayers_sum_total_detail_fail = Test.AnotherWay._openlayers_sum_total_detail_fail || 0;
1334
- Test.AnotherWay._openlayers_sum_total_detail_fail += (total_detail_fail||0);
1335
-
1336
- pages_total+=" (detailed: fail " + Test.AnotherWay._openlayers_sum_total_detail_fail + " | ok " + Test.AnotherWay._openlayers_sum_total_detail_ok + ")";
1337
-
1338
- Test.AnotherWay._update_results_total(pages_total);
1339
- }
1340
- r.innerHTML = text;
1341
- if (results.scrollHeight != null && results.scrollTop != null && results.offsetHeight != null) {
1342
- results.scrollTop = results.scrollHeight - results.offsetHeight;
1343
- }
1344
- // when test_objects is not null, the results are final - good time to clean up
1345
- if (test_objects != null) {
1346
- for (var i = 0; i < test_objects.length; ++i) {
1347
- var actions = test_objects[i].delay_actions;
1348
- for (var action_i = 0; action_i < actions.length; ++action_i) {
1349
- var action = actions[action_i];
1350
- if (action.action_kind == "window" && action.wnd_wnd != null && !action.wnd_no_close) {
1351
- action.wnd_wnd.close();
1352
- action.wnd_wnd = null;
1353
- }
1354
- }
1355
- }
1356
- }
1357
- return r;
1358
- };
1359
-
1360
- Test.AnotherWay._unprint_result = function(child){
1361
- var results = document.getElementById("results");
1362
- results.removeChild(child);
1363
- };
1364
-
1365
- Test.AnotherWay._toggle_detail = function(){
1366
- if (this.id.match(/^result(\d+)$/)) {
1367
- var detail = document.getElementById("result_detail" + RegExp.$1);
1368
- if (detail != null) {
1369
- if (detail.style.display == "none") {
1370
- detail.style.display = "block";
1371
- }
1372
- else
1373
- if (detail.style.display == "block") {
1374
- detail.style.display = "none";
1375
- }
1376
- }
1377
- }
1378
- };
1379
-
1380
- Test.AnotherWay._update_msg_counter = function(msg, text){
1381
- for (var i = 0; i < msg.childNodes.length; ++i) {
1382
- var item = msg.childNodes[i];
1383
- if (item.nodeName == "SPAN" && Test.AnotherWay._get_css_class(item) == "counter") {
1384
- item.innerHTML = text;
1385
- }
1386
- }
1387
- };
1388
-
1389
- Test.AnotherWay._update_results_total = function(msg){
1390
- var total = document.getElementById("total");
1391
- if (total) {
1392
- total.innerHTML = msg;
1393
- }
1394
- };
1395
-
1396
- Test.AnotherWay._results_clear_onclick = function(){
1397
- var results = document.getElementById("results");
1398
- results.innerHTML = "";
1399
- Test.AnotherWay._update_results_total("");
1400
- Test.AnotherWay._g_ok_pages = 0;
1401
- Test.AnotherWay._g_fail_pages = 0;
1402
- Test.AnotherWay._openlayers_sum_total_detail_ok=0;
1403
- Test.AnotherWay._openlayers_sum_total_detail_fail=0;
1404
- var debug = document.getElementById("debug");
1405
- debug.innerHTML = "";
1406
- Test.AnotherWay.reset_running_time();
1407
- };
1408
-
1409
- Test.AnotherWay._get_css_class = function(o){
1410
- var c = o.getAttribute("className");
1411
- if (c == null || c == "") {
1412
- c = o.getAttribute("class");
1413
- }
1414
- return c;
1415
- };
1416
-
1417
- Test.AnotherWay._set_css_class = function(o, css_class){
1418
- o.setAttribute("className", css_class);
1419
- o.setAttribute("class", css_class);
1420
- };
1421
-
1422
- Test.AnotherWay._tab_onclick = function(){
1423
- var tab = this;
1424
- var tabs = [document.getElementById("debug_tab"), document.getElementById("results_tab")];
1425
- var panes = [document.getElementById("debug"), document.getElementById("results")];
1426
- for (var i = 0; i < tabs.length; ++i) {
1427
- if (tab == tabs[i]) {
1428
- Test.AnotherWay._set_css_class(tabs[i], "active_tab");
1429
- panes[i].style.display = "block";
1430
- }
1431
- else {
1432
- Test.AnotherWay._set_css_class(tabs[i], "inactive_tab");
1433
- panes[i].style.display = "none";
1434
- }
1435
- }
1436
- };
1437
- Test.AnotherWay._tab_mouseover = function(){
1438
- if (Test.AnotherWay._get_css_class(this) == "inactive_tab") {
1439
- Test.AnotherWay._set_css_class(this, "inactive_mouseover_tab");
1440
- }
1441
- };
1442
- Test.AnotherWay._tab_mouseout = function(){
1443
- if (Test.AnotherWay._get_css_class(this) == "inactive_mouseover_tab") {
1444
- Test.AnotherWay._set_css_class(this, "inactive_tab");
1445
- }
1446
- };
1447
-
1448
- // recording mouse input
1449
- Test.AnotherWay._record_check_onfocus = function(){
1450
- var o = this;
1451
- var check_select = o.type != "text";
1452
- var div = document.getElementById("record_div");
1453
- var inputs = div.getElementsByTagName("input");
1454
- for (var i = 0; i < inputs.length; ++i) {
1455
- var input = inputs[i];
1456
- if (input.type == "radio") {
1457
- if (input.value == "select") {
1458
- input.checked = check_select;
1459
- }
1460
- else
1461
- if (input.value == "input") {
1462
- input.checked = !check_select;
1463
- }
1464
- }
1465
- }
1466
- };
1467
-
1468
- Test.AnotherWay._g_no_record_msg = null; // not null - recording is unavailable
1469
- Test.AnotherWay._g_record_timeout_cnt = 0; // opening window for a page for recording
1470
- Test.AnotherWay._g_record_url = null;
1471
- Test.AnotherWay._g_record_wnd = null;
1472
- Test.AnotherWay._g_record_random_id = null; // added to element ids of record_control div so that they do not clash with ids already in the page for which input is recorded
1473
- Test.AnotherWay._g_record_keydown = null; // recording control - which key is down
1474
- Test.AnotherWay._g_record_ctrl_keydown = false;
1475
- Test.AnotherWay._g_record_shift_keydown = false;
1476
- Test.AnotherWay._g_record_control_visible = true; // recording control ui state
1477
- Test.AnotherWay._g_record_started;
1478
- Test.AnotherWay._g_record_paused;
1479
- Test.AnotherWay._g_record_include_mousemove = false;
1480
- Test.AnotherWay._g_record_start_time; // for time references
1481
- Test.AnotherWay._g_record_pause_start_time;
1482
- Test.AnotherWay._g_record_update_time_interval; // showing time in the control ui
1483
- Test.AnotherWay._g_record_waiting_for_results = false; // waiting for results window to open
1484
- Test.AnotherWay._g_record_events; // recorded events
1485
- Test.AnotherWay._g_record_under_cursor; // track element under cursor
1486
- Test.AnotherWay._g_record_checkpoint_count; // for checkpoint numbering
1487
- Test.AnotherWay._g_record_mouse_over_record_control; // for avoiding record control highlight on mouseover
1488
- Test.AnotherWay._g_record_highlighted_element = {
1489
- element: null,
1490
- x: null,
1491
- y: null
1492
- };
1493
-
1494
- Test.AnotherWay._record_control_get_element = function(id){
1495
- if (Test.AnotherWay._g_record_wnd != null && Test.AnotherWay._g_record_wnd.document != null) {
1496
- return Test.AnotherWay._g_record_wnd.document.getElementById(id + Test.AnotherWay._g_record_random_id);
1497
- }
1498
- else {
1499
- return null;
1500
- }
1501
- };
1502
- Test.AnotherWay._record_start_onclick = function() // "record" button on the run_tests.html: open a window for a page for which input is recorded
1503
- {
1504
- if (Test.AnotherWay._g_no_record_msg != null) {
1505
- alert(Test.AnotherWay._g_no_record_msg);
1506
- return;
1507
- }
1508
- if (Test.AnotherWay._g_record_timeout_cnt > 0 ||
1509
- (Test.AnotherWay._g_record_wnd != null && (Test.AnotherWay._g_record_wnd.closed != null && !Test.AnotherWay._g_record_wnd.closed))) { // in opera, closed is null.
1510
- alert("there is already window opened for recording input for a page " + Test.AnotherWay._g_record_url);
1511
- return;
1512
- }
1513
- var div = document.getElementById("record_div");
1514
- var inputs = div.getElementsByTagName("input");
1515
- var url = null;
1516
- for (var i = 0; i < inputs.length; ++i) {
1517
- var input = inputs[i];
1518
- if (input.type == "radio") {
1519
- if (input.value == "select" && input.checked) {
1520
- var index = document.getElementById("record_select").selectedIndex;
1521
- if (index > 0) {
1522
- url = Test.AnotherWay._g_test_page_urls[index - 1].url;
1523
- }
1524
- }
1525
- else
1526
- if (input.value == "input" && input.checked) {
1527
- url = document.getElementById("record_input").value;
1528
- }
1529
- }
1530
- }
1531
- if (url != null) {
1532
- Test.AnotherWay._g_record_url = url;
1533
- Test.AnotherWay._g_record_wnd = window.open(url, "_blank");
1534
- if (Test.AnotherWay._g_record_wnd == null) {
1535
- alert("unable to open new window for a page: " + url);
1536
- }
1537
- else {
1538
- Test.AnotherWay._g_record_timeout_cnt = 50;
1539
- setTimeout(Test.AnotherWay._record_window_timeout, 100);
1540
- }
1541
- }
1542
- };
1543
- Test.AnotherWay._record_window_timeout = function(){
1544
- if (Test.AnotherWay._is_url_loaded(Test.AnotherWay._g_record_url, Test.AnotherWay._g_record_wnd)) {
1545
- Test.AnotherWay._record_window_setup(Test.AnotherWay._g_record_wnd);
1546
- }
1547
- else {
1548
- if (--Test.AnotherWay._g_record_timeout_cnt > 0) {
1549
- setTimeout(Test.AnotherWay._record_window_timeout, 100);
1550
- }
1551
- else {
1552
- alert("timeout expired while opening new window for a page: " + Test.AnotherWay._g_record_url);
1553
- Test.AnotherWay._g_record_wnd = null;
1554
- Test.AnotherWay._g_record_url = null;
1555
- Test.AnotherWay._g_record_timeout_cnt = 0;
1556
- }
1557
- }
1558
- };
1559
- Test.AnotherWay._record_control_randomize_id = function(e, r){
1560
- if (e.id != "") {
1561
- e.id = e.id + r;
1562
- }
1563
- for (var c = e.firstChild; c != null; c = c.nextSibling) {
1564
- Test.AnotherWay._record_control_randomize_id(c, r);
1565
- }
1566
- };
1567
- Test.AnotherWay._record_window_setup = function(wnd) // insert recording control into the page for which input is recorded
1568
- {
1569
- Test.AnotherWay._g_record_timeout_cnt = 0;
1570
- var this_div = document.getElementById("record_control");
1571
- var record_control = wnd.document.importNode(this_div, true);
1572
- Test.AnotherWay._g_record_random_id = (1000 * Math.random()).toFixed();
1573
- Test.AnotherWay._record_control_randomize_id(record_control, Test.AnotherWay._g_record_random_id);
1574
- Test.AnotherWay._g_record_control_visible = true;
1575
- Test.AnotherWay._g_record_started = false;
1576
- Test.AnotherWay._g_record_paused = false;
1577
- Test.AnotherWay._g_record_checkpoint_count = 0;
1578
- Test.AnotherWay._g_record_mouse_over_record_control = false;
1579
- var doc = wnd.document;
1580
- doc.body.appendChild(record_control);
1581
- // opera sans-serif font is different
1582
- if (window.opera) {
1583
- cursor_over_indicator = Test.AnotherWay._record_control_get_element("record_cursor_over");
1584
- cursor_over_indicator.style.width = "18em";
1585
- cursor_over_indicator.style.height = "2em";
1586
- cursor_over_indicator.style.fontSize = "7pt";
1587
- }
1588
- doc.addEventListener("keydown", Test.AnotherWay._record_control_keydown, true);
1589
- doc.addEventListener("keyup", Test.AnotherWay._record_control_keyup, true);
1590
- // doc.addEventListener( "keypress", Test.AnotherWay._record_event, true ); // replaying is not supported by any known browser
1591
-
1592
- doc.body.addEventListener("mousemove", Test.AnotherWay._record_on_mousemove, true);
1593
- doc.body.addEventListener("click", Test.AnotherWay._record_event, true);
1594
- doc.body.addEventListener("mouseover", Test.AnotherWay._record_event, true);
1595
- doc.body.addEventListener("mouseout", Test.AnotherWay._record_event, true);
1596
- doc.body.addEventListener("mousedown", Test.AnotherWay._record_event, true);
1597
- doc.body.addEventListener("mouseup", Test.AnotherWay._record_event, true);
1598
- };
1599
- Test.AnotherWay._record_control_key_disabled = function(k){
1600
- if (k == "c") {
1601
- return !Test.AnotherWay._g_record_started;
1602
- }
1603
- else
1604
- if (k == "p") {
1605
- return !Test.AnotherWay._g_record_started;
1606
- }
1607
- else
1608
- if (k == "s") {
1609
- return Test.AnotherWay._g_record_waiting_for_results;
1610
- }
1611
- else {
1612
- return false;
1613
- }
1614
- };
1615
-
1616
- Test.AnotherWay._record_control_update_ui = function(){
1617
- var keydown_color = "#fff";
1618
- var disabled_color = "#aaa";
1619
- var button_color = "#adf";
1620
- var active_color = "#fdf";
1621
-
1622
- var display = {};
1623
- display[false] = "none";
1624
- display[true] = "inline";
1625
-
1626
- var s_button = Test.AnotherWay._record_control_get_element("record_s");
1627
- var record_on = Test.AnotherWay._record_control_get_element("record_on");
1628
- var record_off = Test.AnotherWay._record_control_get_element("record_off");
1629
-
1630
- s_button.style.backgroundColor = Test.AnotherWay._record_control_key_disabled("s") ? disabled_color : Test.AnotherWay._g_record_keydown == "s" ? keydown_color : Test.AnotherWay._g_record_started ? active_color : button_color;
1631
- record_on.style.display = display[!Test.AnotherWay._g_record_started];
1632
- record_off.style.display = display[Test.AnotherWay._g_record_started];
1633
-
1634
- var h_button = Test.AnotherWay._record_control_get_element("record_h");
1635
- h_button.style.backgroundColor = Test.AnotherWay._g_record_keydown == "h" ? keydown_color : button_color;
1636
-
1637
- var p_button = Test.AnotherWay._record_control_get_element("record_p");
1638
- var record_pause_on = Test.AnotherWay._record_control_get_element("record_pause_on");
1639
- var record_pause_off = Test.AnotherWay._record_control_get_element("record_pause_off");
1640
- p_button.style.backgroundColor = Test.AnotherWay._record_control_key_disabled("p") ? disabled_color : Test.AnotherWay._g_record_keydown == "p" ? keydown_color : Test.AnotherWay._g_record_paused ? active_color : button_color;
1641
- record_pause_on.style.display = display[!Test.AnotherWay._g_record_paused];
1642
- record_pause_off.style.display = display[Test.AnotherWay._g_record_paused];
1643
-
1644
- var m_button = Test.AnotherWay._record_control_get_element("record_m");
1645
- var record_include_mousemove = Test.AnotherWay._record_control_get_element("record_include_mousemove");
1646
- var record_omit_mousemove = Test.AnotherWay._record_control_get_element("record_omit_mousemove");
1647
- m_button.style.backgroundColor = Test.AnotherWay._g_record_keydown == "m" ? keydown_color : Test.AnotherWay._g_record_include_mousemove ? active_color : button_color;
1648
- record_include_mousemove.style.display = display[!Test.AnotherWay._g_record_include_mousemove];
1649
- record_omit_mousemove.style.display = display[Test.AnotherWay._g_record_include_mousemove];
1650
-
1651
- var c_button = Test.AnotherWay._record_control_get_element("record_c");
1652
- c_button.style.backgroundColor = Test.AnotherWay._record_control_key_disabled("c") ? disabled_color : Test.AnotherWay._g_record_keydown == "c" ? keydown_color : button_color;
1653
-
1654
- var record_indicator = Test.AnotherWay._record_control_get_element("record_indicator");
1655
- record_indicator.style.display = display[Test.AnotherWay._g_record_started];
1656
-
1657
- var pause_indicator = Test.AnotherWay._record_control_get_element("record_pause_indicator");
1658
- pause_indicator.style.display = display[Test.AnotherWay._g_record_paused];
1659
-
1660
- var record_control = Test.AnotherWay._record_control_get_element("record_control");
1661
- record_control.style.display = Test.AnotherWay._g_record_control_visible ? "block" : "none";
1662
-
1663
- var shift_button = Test.AnotherWay._record_control_get_element("record_shift_key");
1664
- shift_button.style.backgroundColor = Test.AnotherWay._g_record_shift_keydown ? keydown_color : button_color;
1665
-
1666
- var ctrl_button = Test.AnotherWay._record_control_get_element("record_ctrl_key");
1667
- ctrl_button.style.backgroundColor = Test.AnotherWay._g_record_ctrl_keydown ? keydown_color : button_color;
1668
- };
1669
- Test.AnotherWay._record_format_time = function(t){
1670
- t = new Date(t);
1671
- var m = t.getMinutes();
1672
- var s = t.getSeconds();
1673
- var str = m == 0 ? "" : m + "m ";
1674
- str += s + "s.";
1675
- return str;
1676
- };
1677
- Test.AnotherWay._record_control_update_time = function(){
1678
- var time_display = Test.AnotherWay._record_control_get_element("record_time");
1679
- if (time_display != null) {
1680
- time_display.innerHTML = Test.AnotherWay._record_format_time((new Date()).getTime() - Test.AnotherWay._g_record_start_time);
1681
- }
1682
- };
1683
- Test.AnotherWay._record_control_update_highlight = function(elem, style, event){
1684
- if (elem == null) {
1685
- Test.AnotherWay._record_highlight_border(null);
1686
- }
1687
- else {
1688
- var pos = Test.AnotherWay._get_page_coords(elem);
1689
- if (style == "ball" || elem != Test.AnotherWay._g_record_highlighted_element.element || pos.x != Test.AnotherWay._g_record_highlighted_element.x || pos.y != Test.AnotherWay._g_record_highlighted_element.y) {
1690
- Test.AnotherWay._g_record_highlighted_element = {
1691
- element: elem,
1692
- x: pos.x,
1693
- y: pos.y
1694
- };
1695
- Test.AnotherWay._record_highlight_border(elem, style, event);
1696
- }
1697
- }
1698
- };
1699
- Test.AnotherWay._record_decode_key = function(event){
1700
- var k = null;
1701
- if (event == null) {
1702
- k = Test.AnotherWay._g_record_wnd.event.keyCode;
1703
- }
1704
- else {
1705
- k = event.which;
1706
- }
1707
- if (k == 83) {
1708
- return "s";
1709
- }
1710
- else
1711
- if (k == 72) {
1712
- return "h";
1713
- }
1714
- else
1715
- if (k == 73) {
1716
- return "i";
1717
- }
1718
- else
1719
- if (k == 80) {
1720
- return "p";
1721
- }
1722
- else
1723
- if (k == 67) {
1724
- return "c";
1725
- }
1726
- else
1727
- if (k == 77) {
1728
- return "m";
1729
- }
1730
- else
1731
- if (k == 16) {
1732
- return "shift";
1733
- }
1734
- else
1735
- if (k == 17) {
1736
- return "ctrl";
1737
- }
1738
- else
1739
- if (k == 18) {
1740
- return "alt";
1741
- }
1742
- else
1743
- if (k == 19) {
1744
- return "pause";
1745
- }
1746
- else
1747
- if (k == 123) {
1748
- return "f12";
1749
- }
1750
- return "";
1751
- };
1752
- Test.AnotherWay._record_control_keydown = function(event){
1753
- var handled = false;
1754
- var k = Test.AnotherWay._record_decode_key(event);
1755
- if (k == "shift") {
1756
- Test.AnotherWay._g_record_shift_keydown = true;
1757
- }
1758
- else
1759
- if (k == "ctrl") {
1760
- Test.AnotherWay._g_record_ctrl_keydown = true;
1761
- }
1762
- else
1763
- if (k != "" && (Test.AnotherWay._g_record_keydown == null || Test.AnotherWay._g_record_keydown == k)) {
1764
- if (Test.AnotherWay._g_record_ctrl_keydown && Test.AnotherWay._g_record_shift_keydown && !Test.AnotherWay._record_control_key_disabled(k)) {
1765
- Test.AnotherWay._g_record_keydown = k;
1766
- handled = true;
1767
- }
1768
- }
1769
- else {
1770
- Test.AnotherWay._g_record_keydown = "";
1771
- }
1772
- Test.AnotherWay._record_control_update_ui();
1773
- if (!handled) {
1774
- // Test.AnotherWay._record_event( event ); // replaying is not supported in any known browser
1775
- }
1776
- return;
1777
- };
1778
- Test.AnotherWay._record_control_keyup = function(event){
1779
- var handled = false;
1780
- var k = Test.AnotherWay._record_decode_key(event);
1781
- if (k == "shift") {
1782
- Test.AnotherWay._g_record_shift_keydown = false;
1783
- }
1784
- else
1785
- if (k == "ctrl") {
1786
- Test.AnotherWay._g_record_ctrl_keydown = false;
1787
- }
1788
- else
1789
- if (k != "" && k == Test.AnotherWay._g_record_keydown && Test.AnotherWay._g_record_ctrl_keydown && Test.AnotherWay._g_record_shift_keydown) {
1790
- if (k == "s") {
1791
- Test.AnotherWay._g_record_started = !Test.AnotherWay._g_record_started;
1792
- if (Test.AnotherWay._g_record_started) {
1793
- Test.AnotherWay._g_record_events = [];
1794
- Test.AnotherWay._g_record_start_time = (new Date()).getTime();
1795
- Test.AnotherWay._record_control_update_time();
1796
- Test.AnotherWay._g_record_update_time_interval = window.setInterval(Test.AnotherWay._record_control_update_time, 200);
1797
- }
1798
- else {
1799
- Test.AnotherWay._record_control_update_highlight(null);
1800
- if (!Test.AnotherWay._g_record_paused) {
1801
- window.clearInterval(Test.AnotherWay._g_record_update_time_interval);
1802
- }
1803
- Test.AnotherWay._g_record_waiting_for_results = true;
1804
- // open a new window for self, pass a parameter to dump recorded events as javascript code there
1805
- // (the easiest way to obtain a document from the same origin, so it's writable, is to open this same page again)
1806
- Test.AnotherWay._g_record_paused = false;
1807
- var loc = window.location;
1808
- loc = loc.protocol + "//" + loc.host + loc.pathname + "?recording_results=" + Test.AnotherWay._g_record_random_id;
1809
- if (window.open(loc, "_blank") == null) {
1810
- alert("unable to open new window for results");
1811
- }
1812
- }
1813
- handled = true;
1814
- }
1815
- else
1816
- if (k == "h") {
1817
- Test.AnotherWay._g_record_control_visible = !Test.AnotherWay._g_record_control_visible;
1818
- handled = true;
1819
- }
1820
- else
1821
- if (k == "p") {
1822
- Test.AnotherWay._g_record_paused = !Test.AnotherWay._g_record_paused;
1823
- if (Test.AnotherWay._g_record_paused) {
1824
- Test.AnotherWay._g_record_pause_start_time = (new Date()).getTime();
1825
- if (Test.AnotherWay._g_record_started) {
1826
- window.clearInterval(Test.AnotherWay._g_record_update_time_interval);
1827
- }
1828
- Test.AnotherWay._record_control_update_highlight(null);
1829
- }
1830
- else {
1831
- var pause_duration = (new Date()).getTime() - Test.AnotherWay._g_record_pause_start_time;
1832
- Test.AnotherWay._g_record_start_time += pause_duration;
1833
- Test.AnotherWay._g_record_update_time_interval = window.setInterval(Test.AnotherWay._record_control_update_time, 200);
1834
- }
1835
- handled = true;
1836
- }
1837
- else
1838
- if (k == "m") {
1839
- Test.AnotherWay._g_record_include_mousemove = !Test.AnotherWay._g_record_include_mousemove;
1840
- handled = true;
1841
- }
1842
- else
1843
- if (k == "c") {
1844
- var o = Test.AnotherWay._record_checkpoint();
1845
- Test.AnotherWay._record_display_checkpoint(o);
1846
- Test.AnotherWay._record_flash_border("#24d");
1847
- handled = true;
1848
- }
1849
- }
1850
- Test.AnotherWay._g_record_keydown = null;
1851
- Test.AnotherWay._record_control_update_ui();
1852
- if (!handled) {
1853
- // Test.AnotherWay._record_event( event ); // replaying is not supported in any known browser
1854
- }
1855
- return;
1856
- };
1857
- Test.AnotherWay._record_html_node_path = function(node){
1858
- if (node == null) {
1859
- return null;
1860
- }
1861
- var path = [];
1862
- while (true) {
1863
- if (node.id != null && node.id != "") {
1864
- path.unshift("#" + node.id + " " + node.nodeName);
1865
- break;
1866
- }
1867
- else {
1868
- var parent_node = node.parentNode;
1869
- if (parent_node == null) {
1870
- return []; // no BODY up the path - this node is screwed (browsers differ in what's above the body), discard
1871
- }
1872
- else {
1873
- var i = 0;
1874
- var found = false;
1875
- for (var child = parent_node.firstChild; child != null; child = child.nextSibling) {
1876
- if (child == node) {
1877
- found = true;
1878
- break;
1879
- }
1880
- if (child.nodeType == 1) { // count only HTML element nodes
1881
- ++i;
1882
- }
1883
- }
1884
- if (!found) {
1885
- i = -1;
1886
- }
1887
- path.unshift(i + " " + node.nodeName);
1888
- if (parent_node.nodeName == "BODY" || parent_node.nodeName == "body") {
1889
- break;
1890
- }
1891
- node = parent_node;
1892
- }
1893
- }
1894
- }
1895
- return path;
1896
- };
1897
- Test.AnotherWay._record_node_path_to_string = function(path){
1898
- var s = "";
1899
- if (path != null) {
1900
- for (var i = 0; i < path.length; ++i) {
1901
- s += i == 0 ? "" : ", ";
1902
- var elem = path[i].split(" ");
1903
- if (elem[0].charAt(0) == "#") {
1904
- s += elem[1] + " " + elem[0];
1905
- }
1906
- else {
1907
- s += elem[1] + " [" + elem[0] + "]";
1908
- }
1909
- }
1910
- }
1911
- return s;
1912
- };
1913
- Test.AnotherWay._record_node_path_to_node = function(path_str, doc){
1914
- if (path_str == null) {
1915
- return null;
1916
- }
1917
- var path = path_str.split(",");
1918
- var node = doc.body;
1919
- for (var i = 0; i < path.length; ++i) {
1920
- var node_i = path[i].split(" ")[0];
1921
- if (node_i.charAt(0) == "#") {
1922
- node = doc.getElementById(node_i.substring(1));
1923
- }
1924
- else {
1925
- if (node_i < 0 || node_i >= node.childNodes.length) {
1926
- node = null;
1927
- }
1928
- else {
1929
- node = node.firstChild;
1930
- while (node != null) {
1931
- if (node.nodeType == 1) { // count only HTML element nodes
1932
- if (node_i == 0) {
1933
- break;
1934
- }
1935
- --node_i;
1936
- }
1937
- node = node.nextSibling;
1938
- }
1939
- }
1940
- }
1941
- if (node == null) {
1942
- return null;
1943
- }
1944
- }
1945
- return node;
1946
- };
1947
- Test.AnotherWay._record_control_contains_id = function(s){
1948
- return s.match(/^#record_[\w_]+/) && s.match(Test.AnotherWay._g_record_random_id);
1949
- };
1950
- Test.AnotherWay._record_checkpoint = function(){
1951
- var o = {
1952
- type: "_checkpoint",
1953
- time: (new Date()).getTime() - Test.AnotherWay._g_record_start_time,
1954
- which: Test.AnotherWay._g_record_checkpoint_count++,
1955
- target: Test.AnotherWay._record_html_node_path(Test.AnotherWay._g_record_under_cursor)
1956
- };
1957
- Test.AnotherWay._g_record_events.push(o);
1958
- return o;
1959
- };
1960
- Test.AnotherWay._record_event = function(event){
1961
- var unneeded = ["rangeOffset", "eventPhase", "timeStamp", "isTrusted", "popupWindowFeatures", "rangeOffset"];
1962
- if (Test.AnotherWay._g_record_started && !Test.AnotherWay._g_record_paused) {
1963
- var o = {};
1964
- for (var n in event) {
1965
- var needed = !n.match(/^[A-Z0-9_]+$/);
1966
- if (needed) {
1967
- for (var ui = 0; ui < unneeded.length; ++ui) {
1968
- if (unneeded[ui] == n) {
1969
- needed = false;
1970
- break;
1971
- }
1972
- }
1973
- if (needed) {
1974
- var value = event[n];
1975
- if (typeof(value) != "object" && typeof(value) != "function") {
1976
- o[n] = value;
1977
- }
1978
- else
1979
- if (n == "target" || n == "relatedTarget") {
1980
- o[n] = Test.AnotherWay._record_html_node_path(value);
1981
- }
1982
- }
1983
- }
1984
- }
1985
- o["time"] = (new Date()).getTime() - Test.AnotherWay._g_record_start_time;
1986
- var over_record_control = o["target"] != null && o["target"][0] != null && Test.AnotherWay._record_control_contains_id(o["target"][0]);
1987
- if (!over_record_control) {
1988
- Test.AnotherWay._g_record_events.push(o);
1989
- }
1990
- }
1991
- return true;
1992
- };
1993
- Test.AnotherWay._record_on_mousemove = function(event){
1994
- var path = Test.AnotherWay._record_html_node_path(event.target);
1995
- var new_mouse_over_record_control = path != null && path[0] != null && Test.AnotherWay._record_control_contains_id(path[0]);
1996
- if (new_mouse_over_record_control != Test.AnotherWay._g_record_mouse_over_record_control) {
1997
- Test.AnotherWay._g_record_mouse_over_record_control = new_mouse_over_record_control;
1998
- Test.AnotherWay._record_control_update_ui();
1999
- }
2000
- if (event.target != null && event.target != Test.AnotherWay._g_record_under_cursor) {
2001
- Test.AnotherWay._g_record_under_cursor = event.target;
2002
- var s = "";
2003
- if (path == null || path[0] == null || !Test.AnotherWay._record_control_contains_id(path[0])) {
2004
- s = Test.AnotherWay._record_node_path_to_string(path);
2005
- }
2006
- if (s == "") {
2007
- s = "&nbsp;";
2008
- }
2009
- var cursor_over_indicator = Test.AnotherWay._record_control_get_element("record_cursor_over");
2010
- cursor_over_indicator.innerHTML = s;
2011
- }
2012
-
2013
- var highlight_element = null;
2014
- if (!Test.AnotherWay._g_record_mouse_over_record_control && Test.AnotherWay._g_record_started && !Test.AnotherWay._g_record_paused) {
2015
- highlight_element = event.target;
2016
- }
2017
- // highlight border disabled on recording - it causes page to scroll, issuing spurious mouseover/mouseout event
2018
- //Test.AnotherWay._record_control_update_highlight( highlight_element, "border" );
2019
-
2020
- if (Test.AnotherWay._g_record_include_mousemove) {
2021
- Test.AnotherWay._record_event(event);
2022
- }
2023
- return true;
2024
- };
2025
- Test.AnotherWay._record_display_checkpoint = function(o){
2026
- var checkpoints_div = Test.AnotherWay._record_control_get_element("record_checkpoints");
2027
- var p = checkpoints_div.appendChild(checkpoints_div.ownerDocument.createElement("div"));
2028
- p.style.marginTop = "3px";
2029
- p.style.font = "normal normal 8pt sans-serif";
2030
- p.style.color = "#000";
2031
- p.style.textAligh = "left";
2032
- p.style.position = "relative";
2033
- p.style.width = "100%";
2034
- var checkpoint_text = "";
2035
- checkpoint_text += "#" + (o.which + 1);
2036
- checkpoint_text += " " + Test.AnotherWay._record_format_time(o.time);
2037
- if (o.target != null) {
2038
- checkpoint_text += Test.AnotherWay._record_node_path_to_string(o.target);
2039
- }
2040
- p.appendChild(p.ownerDocument.createTextNode(checkpoint_text));
2041
- };
2042
- Test.AnotherWay._record_save_results = function(doc){
2043
- // strange, but DOM-style append does not work here in opera 8.
2044
- var append = function(s){
2045
- doc.write("<div>" + s + "</div>");
2046
- };
2047
- append("/* paste this data into your javascript and pass it as an argument to replay_events method */");
2048
- append("{ checkpoints: [");
2049
- var first_checkpoint = true;
2050
- for (var i = 0; i < Test.AnotherWay._g_record_events.length; ++i) {
2051
- var o = Test.AnotherWay._g_record_events[i];
2052
- if (o.type == "_checkpoint") {
2053
- var str = first_checkpoint ? "" : "}, ";
2054
- str += "function( tst, wnd ) { // #" + o.which + " time " + Test.AnotherWay._record_format_time(o.time) + " cursor was over " + Test.AnotherWay._record_node_path_to_string(o.target);
2055
- append(str);
2056
- first_checkpoint = false;
2057
- }
2058
- }
2059
- if (!first_checkpoint) {
2060
- append("}");
2061
- }
2062
- append("], events: [ ");
2063
- var prev_time = 0;
2064
- for (var i = 0; i < Test.AnotherWay._g_record_events.length; ++i) {
2065
- var o = Test.AnotherWay._g_record_events[i];
2066
- var s = "";
2067
- s += "{";
2068
- var n_first = true;
2069
- for (var n in o) {
2070
- if (n == "time") { // convert to relative time
2071
- var cur_time = o[n] - 0;
2072
- o[n] = cur_time - prev_time;
2073
- prev_time = cur_time;
2074
- }
2075
- s += n_first ? n : ", " + n;
2076
- s += ":";
2077
- if (o[n] == null) {
2078
- s += "null";
2079
- }
2080
- else {
2081
- s += "\"" + o[n] + "\"";
2082
- }
2083
- n_first = false;
2084
- }
2085
- s += i == Test.AnotherWay._g_record_events.length - 1 ? "}" : "},";
2086
- append(s);
2087
- }
2088
- append("] }");
2089
- append(";");
2090
- };
2091
-
2092
- Test.AnotherWay._g_record_border; // border highlighting element under cursor
2093
- Test.AnotherWay._g_record_border_flashes = []; // array of { color: color, timeout: milliseconds }
2094
- Test.AnotherWay._g_record_border_flashing = false;
2095
- Test.AnotherWay._g_record_border_normal_color = "#d4b";
2096
- Test.AnotherWay._record_flash_border_timeout = function(){
2097
- var color = Test.AnotherWay._g_record_border_normal_color;
2098
- var timeout = null;
2099
- if (Test.AnotherWay._g_record_border_flashes.length != 0) {
2100
- color = Test.AnotherWay._g_record_border_flashes[0].color;
2101
- timeout = Test.AnotherWay._g_record_border_flashes[0].timeout;
2102
- Test.AnotherWay._g_record_border_flashes.splice(0, 1);
2103
- }
2104
- if (Test.AnotherWay._g_record_border != null) {
2105
- for (var i = 0; i < Test.AnotherWay._g_record_border.length; ++i) {
2106
- Test.AnotherWay._g_record_border[i].style.backgroundColor = color;
2107
- }
2108
- }
2109
- if (timeout != null) {
2110
- setTimeout(Test.AnotherWay._record_flash_border_timeout, timeout);
2111
- }
2112
- else {
2113
- Test.AnotherWay._g_record_border_flashing = false;
2114
- }
2115
- };
2116
- Test.AnotherWay._get_page_coords = function(elm){
2117
- var point = {
2118
- x: 0,
2119
- y: 0
2120
- };
2121
- while (elm) {
2122
- point.x += elm.offsetLeft;
2123
- point.y += elm.offsetTop;
2124
- elm = elm.offsetParent;
2125
- }
2126
- return point;
2127
- };
2128
- Test.AnotherWay._set_page_coords = function(elm, x, y){
2129
- var parent_coords = {
2130
- x: 0,
2131
- y: 0
2132
- };
2133
- if (elm.offsetParent) {
2134
- parent_coords = Test.AnotherWay._get_page_coords(elm.offsetParent);
2135
- }
2136
- var new_x = x - parent_coords.x;
2137
- if (new_x < 0) {
2138
- new_x = 0;
2139
- }
2140
- elm.style.left = new_x + 'px';
2141
- var new_y = y - parent_coords.y;
2142
- if (new_y < 0) {
2143
- new_y = 0;
2144
- }
2145
- elm.style.top = new_y + 'px';
2146
- };
2147
- Test.AnotherWay._record_setup_highlight_positions = function(element, style, coords, positions){
2148
- if (style == "border") {
2149
- var width = element.clientWidth;
2150
- var height = element.clientHeight;
2151
- var step = 0;
2152
- var thickness = 2;
2153
- var fudge_expand = 4;
2154
- positions.push({
2155
- x: coords.x - step - thickness,
2156
- y: coords.y - step - thickness,
2157
- width: width + 2 * step + 2 * thickness + fudge_expand,
2158
- height: thickness
2159
- });
2160
- positions.push({
2161
- x: coords.x + width + step + fudge_expand,
2162
- y: coords.y - step - thickness,
2163
- width: thickness,
2164
- height: height + 2 * step + 2 * thickness + fudge_expand
2165
- });
2166
- positions.push({
2167
- x: positions[0].x,
2168
- y: positions[0].y,
2169
- width: positions[0].width,
2170
- height: positions[0].height
2171
- });
2172
- positions.push({
2173
- x: positions[1].x,
2174
- y: positions[1].y,
2175
- width: positions[1].width,
2176
- height: positions[1].height
2177
- });
2178
- positions[2].y += height + thickness + 2 * step + fudge_expand;
2179
- positions[3].x -= width + thickness + 2 * step + fudge_expand;
2180
- }
2181
- else
2182
- if (style == "ball") {
2183
- positions.push({
2184
- x: coords.x + 2,
2185
- y: coords.y,
2186
- width: 2,
2187
- height: 6
2188
- });
2189
- positions.push({
2190
- x: coords.x,
2191
- y: coords.y + 2,
2192
- width: 6,
2193
- height: 2
2194
- });
2195
- positions.push({
2196
- x: coords.x + 1,
2197
- y: coords.y + 1,
2198
- width: 4,
2199
- height: 4
2200
- });
2201
- }
2202
- };
2203
- Test.AnotherWay._record_highlight_border = function(element, style, event) // null - hide border
2204
- {
2205
- if (element != null) {
2206
- if (Test.AnotherWay._g_record_border == null || Test.AnotherWay._g_record_border[0].ownerDocument != element.ownerDocument) {
2207
- Test.AnotherWay._g_record_border = [];
2208
- var n = style == "border" ? 4 : style == "ball" ? 3 : 0;
2209
- for (var i = 0; i < 4; ++i) {
2210
- var b = element.ownerDocument.createElement("div");
2211
- b.style.position = "absolute";
2212
- b.style.zIndex = "1";
2213
- b.style.backgroundColor = Test.AnotherWay._g_record_border_normal_color;
2214
- element.ownerDocument.body.appendChild(b);
2215
- Test.AnotherWay._g_record_border.push(b);
2216
- }
2217
- }
2218
- var coords = null;
2219
- if (style == "border") {
2220
- coords = Test.AnotherWay._get_page_coords(element);
2221
- }
2222
- else
2223
- if (style == "ball") {
2224
- if (event != null) {
2225
- if (event.pageX != null && event.pageY != null) {
2226
- coords = {
2227
- x: event.pageX - 0,
2228
- y: event.pageY - 0
2229
- };
2230
- }
2231
- else
2232
- if (event.clientX != null && event.clientY != null) {
2233
- var doc = element.ownerDocument;
2234
- if (doc != null) {
2235
- coords = {
2236
- x: (event.clientX - 0) + doc.body.scrollLeft,
2237
- y: (event.clientY - 0) + doc.body.scrollTop
2238
- };
2239
- }
2240
- }
2241
- }
2242
- }
2243
- if (coords != null && element.clientWidth != null && element.clientHeight != null) {
2244
- var positions = [];
2245
- Test.AnotherWay._record_setup_highlight_positions(element, style, coords, positions);
2246
- for (var i = 0; i < positions.length; ++i) {
2247
- var b = Test.AnotherWay._g_record_border[i];
2248
- var p = positions[i];
2249
- Test.AnotherWay._set_page_coords(b, p.x, p.y);
2250
- b.style.width = p.width + "px";
2251
- b.style.height = p.height + "px";
2252
- b.style.display = "block";
2253
- }
2254
- }
2255
- }
2256
- else {
2257
- if (Test.AnotherWay._g_record_border != null) {
2258
- for (var i = 0; i < Test.AnotherWay._g_record_border.length; ++i) {
2259
- Test.AnotherWay._g_record_border[i].style.display = "none";
2260
- }
2261
- }
2262
- }
2263
- };
2264
- Test.AnotherWay._record_flash_border = function(color){
2265
- if (Test.AnotherWay._g_record_border_flashing) { //already
2266
- Test.AnotherWay._g_record_border_flashes.push({
2267
- color: Test.AnotherWay._g_record_border_normal_color,
2268
- timeout: 300
2269
- });
2270
- Test.AnotherWay._g_record_border_flashes.push({
2271
- color: color,
2272
- timeout: 600
2273
- });
2274
- }
2275
- else {
2276
- Test.AnotherWay._g_record_border_flashing = true;
2277
- Test.AnotherWay._g_record_border_flashes.push({
2278
- color: color,
2279
- timeout: 600
2280
- });
2281
- Test.AnotherWay._record_flash_border_timeout();
2282
- }
2283
- };
2284
- Test.AnotherWay._record_prepare_doc_for_results = function(){
2285
- document.open();
2286
- document.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
2287
- document.write("<html><head><title> Input recording results</title>");
2288
- document.write("<style type=\"text/css\">");
2289
- document.write("body { font: normal normal smaller sans-serif; }");
2290
- document.write("div { margin-top: 3px; }");
2291
- document.write("</style></head><body>");
2292
- // opera and mozilla disagree over who the opener is.
2293
- if (typeof(window.opener.Test) != "undefined" && typeof(window.opener.Test.AnotherWay) != "undefined") {
2294
- window.opener.Test.AnotherWay._record_save_results(document);
2295
- window.opener.Test.AnotherWay._g_record_waiting_for_results = false;
2296
- window.opener.Test.AnotherWay._record_control_update_ui();
2297
- }
2298
- else
2299
- if (typeof(window.opener.opener.Test) != "undefined" && typeof(window.opener.opener.Test.AnotherWay) != "undefined") {
2300
- window.opener.opener.Test.AnotherWay._record_save_results(document);
2301
- window.opener.opener.Test.AnotherWay._g_record_waiting_for_results = false;
2302
- window.opener.opener.Test.AnotherWay._record_control_update_ui();
2303
- }
2304
- document.write("</body>");
2305
- document.close();
2306
- };
2307
-
2308
- // global initialization
2309
- onload = function(){
2310
- if (window.opera) {
2311
- var good_opera = typeof(window.opera.version) == "function";
2312
- good_opera = good_opera && window.opera.version().match(/^\s*(\d+)/);
2313
- good_opera = good_opera && RegExp.$1 >= 8;
2314
- }
2315
- var span = document.createElement("SPAN");
2316
- span.innerHTML = "<!--[if IE]><br /><![endif]-" + "->";
2317
- var is_ie = span.getElementsByTagName("BR").length > 0;
2318
-
2319
- Test.AnotherWay._g_test_iframe = window.frames.test_iframe;
2320
-
2321
- var query_str = window.location.search;
2322
- if (query_str.charAt(0) == "?") {
2323
- query_str = query_str.substring(1);
2324
- }
2325
- var testlist_page = "list-tests.html";
2326
- var auto_run = false;
2327
- if (query_str != "") {
2328
- var params = [query_str];
2329
- if (query_str.indexOf(";") != -1) {
2330
- params = query_str.split(";");
2331
- }
2332
- else
2333
- if (query_str.indexOf("&") != -1) {
2334
- params = query_str.split("&");
2335
- }
2336
- for (var param_i = 0; param_i < params.length; ++param_i) {
2337
- var param = params[param_i].split("=");
2338
- if (param[0] == "recording_results") {
2339
- if (window.opener != null) {
2340
- // we were told to show recording results - replace everything in the document with the results
2341
- Test.AnotherWay._record_prepare_doc_for_results();
2342
- return;
2343
- }
2344
- }
2345
- else
2346
- if (param[0] == "testpage") {
2347
- Test.AnotherWay._add_test_page_url(decodeURIComponent(param[1]), "anotherway");
2348
- }
2349
- else
2350
- if (param[0] == "jsantestpage") {
2351
- Test.AnotherWay._add_test_page_url(decodeURIComponent(param[1]), "jsan");
2352
- }
2353
- else
2354
- if (param[0] == "testlist") {
2355
- testlist_page = decodeURIComponent(param[1]);
2356
- }
2357
- else
2358
- if (param[0] == "testframe") {
2359
- if (window.opera && !good_opera) {
2360
- Test.AnotherWay._show_error("testframe parameter does not work in versions of Opera prior to 8.0. Sorry (pathches are welcome).");
2361
- // Opera 7 barfs on attempt to access frame.frameElement.
2362
- // if someone knows a way to assign onload handler to that iframe in Opera 7
2363
- // without disrupting code that works in other browsers, patches are welcome.
2364
- }
2365
- else {
2366
- var frame_path = param[1].split(".");
2367
- var frame = top;
2368
- for (var frame_path_i = 0; frame_path_i < frame_path.length; ++frame_path_i) {
2369
- frame = frame[frame_path[frame_path_i]];
2370
- }
2371
- if (frame == null) {
2372
- Test.AnotherWay._show_error("unable to find frame specified for loading test pages: " + param[1]);
2373
- }
2374
- else {
2375
- if (frame.frameElement != null) { // for the following assignement to onload to work, frameElement is required
2376
- frame = frame.frameElement;
2377
- }
2378
- Test.AnotherWay._g_test_iframe = frame;
2379
- }
2380
- }
2381
- }
2382
- else
2383
- if (param[0] == "testframe_no_clear") {
2384
- Test.AnotherWay._g_test_frame_no_clear = true;
2385
- }
2386
- else
2387
- if (param[0] == "windows") {
2388
- if (param[1] == "none") {
2389
- Test.AnotherWay._test_object_t.prototype.open_window = null;
2390
- }
2391
- }
2392
- else
2393
- if (param[0] == "run") {
2394
- auto_run = true;
2395
- if (param[1] == "all") {
2396
- Test.AnotherWay._g_pages_to_run = "all";
2397
- }
2398
- else {
2399
- if (Test.AnotherWay._g_pages_to_run == null || Test.AnotherWay._g_pages_to_run == "all") {
2400
- Test.AnotherWay._g_pages_to_run = [];
2401
- }
2402
- var pages = param[1].split(",");
2403
- for (var i = 0; i < pages.length; ++i) {
2404
- Test.AnotherWay._g_pages_to_run.push(pages[i]);
2405
- }
2406
- }
2407
- }
2408
- }
2409
- }
2410
- if (Test.AnotherWay._g_test_page_urls.length == 0) { // if no individual pages were given on the command line, load the list
2411
- var result = Test.AnotherWay._set_iframe_location(window.frames["list_iframe"], testlist_page);
2412
- if (result.msg != null) {
2413
- Test.AnotherWay._show_error(result.msg);
2414
- }
2415
- Test.AnotherWay._g_run_on_list_load = auto_run;
2416
- }
2417
- else {
2418
- Test.AnotherWay._g_run_on_main_load = auto_run;
2419
- }
2420
-
2421
- var f = Test.AnotherWay._g_test_iframe;
2422
- try {
2423
- if (f.attachEvent != null) {
2424
- f.attachEvent("onload", Test.AnotherWay._test_page_onload);
2425
- }
2426
- else {
2427
- f.onload = Test.AnotherWay._test_page_onload;
2428
- }
2429
- if (Test.AnotherWay._g_test_iframe.nodeType != null && Test.AnotherWay._g_test_iframe.contentWindow != null) { // it's iframe element, not the iframe. we need iframe.
2430
- Test.AnotherWay._g_test_iframe = Test.AnotherWay._g_test_iframe.contentWindow;
2431
- }
2432
- }
2433
- catch (e) {
2434
- // ignore stupid opera error if the frame has onload handler assigned in the inline html
2435
- }
2436
- var handlers = {
2437
- "run_all": {
2438
- "onclick": Test.AnotherWay._run_all_onclick
2439
- },
2440
- "run_selected": {
2441
- "onclick": Test.AnotherWay._run_selected_onclick
2442
- },
2443
- "unselect_all": {
2444
- "onclick": Test.AnotherWay._unselect_all_onclick
2445
- },
2446
- "record_select": {
2447
- "onfocus": Test.AnotherWay._record_check_onfocus
2448
- },
2449
- "record_input": {
2450
- "onfocus": Test.AnotherWay._record_check_onfocus
2451
- },
2452
- "record_start": {
2453
- "onclick": Test.AnotherWay._record_start_onclick
2454
- },
2455
- "clear_btn": {
2456
- "onclick": Test.AnotherWay._results_clear_onclick
2457
- },
2458
- "results_tab": {
2459
- "onclick": Test.AnotherWay._tab_onclick,
2460
- "onmouseover": Test.AnotherWay._tab_mouseover,
2461
- "onmouseout": Test.AnotherWay._tab_mouseout
2462
- },
2463
- "debug_tab": {
2464
- "onclick": Test.AnotherWay._tab_onclick,
2465
- "onmouseover": Test.AnotherWay._tab_mouseover,
2466
- "onmouseout": Test.AnotherWay._tab_mouseout
2467
- }
2468
- };
2469
- for (var hs in handlers) {
2470
- var o = document.getElementById(hs);
2471
- if (o != null) {
2472
- for (var h in handlers[hs]) {
2473
- o[h] = handlers[hs][h];
2474
- }
2475
- }
2476
- else {
2477
- Test.AnotherWay._show_error("unable to set " + h + " handler: id " + hs + " not found");
2478
- }
2479
- }
2480
-
2481
- if (window.opera && !good_opera) {
2482
- Test.AnotherWay._g_no_record_msg = "Input events recording and replaying is not available in opera versions prior to 8.0.";
2483
- }
2484
- if (is_ie) {
2485
- Test.AnotherWay._g_no_record_msg = "Input events recording and replaying is not available in internet explorer.";
2486
- }
2487
- if (Test.AnotherWay._g_no_record_msg != null) {
2488
- var no_record_p = document.getElementById("record_not_supported");
2489
- no_record_p.style.display = "block";
2490
- no_record_p.appendChild(document.createTextNode(Test.AnotherWay._g_no_record_msg));
2491
- }
2492
-
2493
- Test.AnotherWay._g_main_loaded = true;
2494
- if (Test.AnotherWay._g_run_on_main_load) {
2495
- Test.AnotherWay._g_run_on_main_load = false;
2496
- Test.AnotherWay._run_pages_to_run();
2497
- }
2498
- };