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.
- checksums.yaml +4 -4
- data/README.md +4 -3
- data/lib/postrunner/ActivitiesDB.rb +8 -9
- data/lib/postrunner/Activity.rb +7 -1
- data/lib/postrunner/ActivityView.rb +10 -2
- data/lib/postrunner/DataSources.rb +100 -0
- data/lib/postrunner/DeviceList.rb +40 -17
- data/lib/postrunner/Log.rb +25 -0
- data/lib/postrunner/Main.rb +9 -8
- data/lib/postrunner/RuntimeConfig.rb +1 -0
- data/lib/postrunner/TrackView.rb +39 -62
- data/lib/postrunner/version.rb +1 -1
- data/misc/openlayers/ol.css +1 -0
- data/misc/openlayers/ol.js +948 -0
- data/postrunner.gemspec +2 -2
- data/spec/PostRunner_spec.rb +22 -23
- data/spec/spec_helper.rb +34 -4
- metadata +11 -1214
- data/misc/openlayers/.gitignore +0 -7
- data/misc/openlayers/OpenLayers.debug.js +0 -85622
- data/misc/openlayers/OpenLayers.js +0 -1443
- data/misc/openlayers/OpenLayers.light.debug.js +0 -37230
- data/misc/openlayers/OpenLayers.light.js +0 -592
- data/misc/openlayers/OpenLayers.mobile.debug.js +0 -41831
- data/misc/openlayers/OpenLayers.mobile.js +0 -681
- data/misc/openlayers/apidoc_config/Languages.txt +0 -113
- data/misc/openlayers/apidoc_config/Menu.txt +0 -520
- data/misc/openlayers/apidoc_config/OL.css +0 -20
- data/misc/openlayers/apidoc_config/Topics.txt +0 -105
- data/misc/openlayers/art/arrows.svg +0 -127
- data/misc/openlayers/art/layer-switcher-maximize.svg +0 -128
- data/misc/openlayers/art/layer-switcher-minimize.svg +0 -142
- data/misc/openlayers/art/marker.svg +0 -25
- data/misc/openlayers/art/measuring-stick-off.svg +0 -36
- data/misc/openlayers/art/measuring-stick-on.svg +0 -36
- data/misc/openlayers/art/panning-hand-off.svg +0 -44
- data/misc/openlayers/art/panning-hand-on.svg +0 -44
- data/misc/openlayers/art/slider.svg +0 -71
- data/misc/openlayers/art/zoom-world.svg +0 -193
- data/misc/openlayers/art/zoombar.svg +0 -73
- data/misc/openlayers/authors.txt +0 -56
- data/misc/openlayers/build/README.txt +0 -46
- data/misc/openlayers/build/build.py +0 -158
- data/misc/openlayers/build/buildUncompressed.py +0 -25
- data/misc/openlayers/build/closure-compiler/Externs.js +0 -50
- data/misc/openlayers/build/full.cfg +0 -14
- data/misc/openlayers/build/license.txt +0 -57
- data/misc/openlayers/build/light.cfg +0 -32
- data/misc/openlayers/build/lite.cfg +0 -17
- data/misc/openlayers/build/mobile.cfg +0 -36
- data/misc/openlayers/build/tests.cfg +0 -11
- data/misc/openlayers/doc_config/Data/ClassHierarchy.nd +0 -0
- data/misc/openlayers/doc_config/Data/ConfigFileInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/FileInfo.nd +0 -323
- data/misc/openlayers/doc_config/Data/ImageFileInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/ImageReferenceTable.nd +0 -0
- data/misc/openlayers/doc_config/Data/IndexInfo.nd +0 -0
- data/misc/openlayers/doc_config/Data/PreviousMenuState.nd +0 -0
- data/misc/openlayers/doc_config/Data/PreviousSettings.nd +0 -0
- data/misc/openlayers/doc_config/Data/SymbolTable.nd +0 -0
- data/misc/openlayers/doc_config/Languages.txt +0 -113
- data/misc/openlayers/doc_config/Menu.txt +0 -520
- data/misc/openlayers/doc_config/OL.css +0 -20
- data/misc/openlayers/doc_config/Topics.txt +0 -102
- data/misc/openlayers/examples/Jugl.js +0 -8
- data/misc/openlayers/examples/KMLParser.html +0 -57
- data/misc/openlayers/examples/SLDSelect.html +0 -202
- data/misc/openlayers/examples/WMSDescribeLayerParser.html +0 -52
- data/misc/openlayers/examples/accelerometer.html +0 -100
- data/misc/openlayers/examples/accessible-click-control.html +0 -69
- data/misc/openlayers/examples/accessible-click-control.js +0 -199
- data/misc/openlayers/examples/accessible-panel.html +0 -130
- data/misc/openlayers/examples/accessible-panel.js +0 -64
- data/misc/openlayers/examples/accessible.html +0 -167
- data/misc/openlayers/examples/all-overlays-google.html +0 -34
- data/misc/openlayers/examples/all-overlays-google.js +0 -19
- data/misc/openlayers/examples/all-overlays.html +0 -76
- data/misc/openlayers/examples/anchor-permalink.html +0 -29
- data/misc/openlayers/examples/anchor-permalink.js +0 -13
- data/misc/openlayers/examples/animated_panning.html +0 -98
- data/misc/openlayers/examples/animator.js +0 -670
- data/misc/openlayers/examples/arcgis93rest.html +0 -69
- data/misc/openlayers/examples/arcgiscache_ags.html +0 -221
- data/misc/openlayers/examples/arcgiscache_direct.html +0 -108
- data/misc/openlayers/examples/arcgiscache_jsonp.html +0 -106
- data/misc/openlayers/examples/arcims-thematic.html +0 -82
- data/misc/openlayers/examples/arcims.html +0 -57
- data/misc/openlayers/examples/attribution.html +0 -60
- data/misc/openlayers/examples/behavior-fixed-http-gml.html +0 -56
- data/misc/openlayers/examples/bing-tiles-restrictedzoom.html +0 -43
- data/misc/openlayers/examples/bing-tiles-restrictedzoom.js +0 -37
- data/misc/openlayers/examples/bing-tiles.html +0 -39
- data/misc/openlayers/examples/bing-tiles.js +0 -31
- data/misc/openlayers/examples/bing.html +0 -64
- data/misc/openlayers/examples/bootstrap.html +0 -81
- data/misc/openlayers/examples/bootstrap.js +0 -31
- data/misc/openlayers/examples/boxes-vector.html +0 -59
- data/misc/openlayers/examples/boxes.html +0 -58
- data/misc/openlayers/examples/browser.html +0 -152
- data/misc/openlayers/examples/browser.js +0 -241
- data/misc/openlayers/examples/buffer.html +0 -54
- data/misc/openlayers/examples/cache-read.html +0 -36
- data/misc/openlayers/examples/cache-read.js +0 -36
- data/misc/openlayers/examples/cache-write.html +0 -37
- data/misc/openlayers/examples/cache-write.js +0 -46
- data/misc/openlayers/examples/canvas-hit-detection.html +0 -31
- data/misc/openlayers/examples/canvas-hit-detection.js +0 -88
- data/misc/openlayers/examples/canvas-inspector.html +0 -53
- data/misc/openlayers/examples/canvas-inspector.js +0 -91
- data/misc/openlayers/examples/canvas.html +0 -35
- data/misc/openlayers/examples/canvas.js +0 -57
- data/misc/openlayers/examples/cartodb-geojson.html +0 -71
- data/misc/openlayers/examples/click-handler.html +0 -232
- data/misc/openlayers/examples/click.html +0 -91
- data/misc/openlayers/examples/clientzoom.html +0 -72
- data/misc/openlayers/examples/clientzoom.js +0 -39
- data/misc/openlayers/examples/controls.html +0 -86
- data/misc/openlayers/examples/cql-format.html +0 -54
- data/misc/openlayers/examples/cql-format.js +0 -61
- data/misc/openlayers/examples/cross-origin-xml.html +0 -32
- data/misc/openlayers/examples/cross-origin-xml.js +0 -25
- data/misc/openlayers/examples/cross-origin.html +0 -36
- data/misc/openlayers/examples/cross-origin.js +0 -39
- data/misc/openlayers/examples/custom-control.html +0 -68
- data/misc/openlayers/examples/custom-style.html +0 -66
- data/misc/openlayers/examples/data/4_m_citylights_lg.gif +0 -0
- data/misc/openlayers/examples/data/line.json +0 -10
- data/misc/openlayers/examples/data/point.json +0 -8
- data/misc/openlayers/examples/data/poly.json +0 -9
- data/misc/openlayers/examples/data/roads.json +0 -349
- data/misc/openlayers/examples/data/tazdem.tiff +0 -0
- data/misc/openlayers/examples/debug.html +0 -77
- data/misc/openlayers/examples/document-drag.html +0 -43
- data/misc/openlayers/examples/donut.html +0 -62
- data/misc/openlayers/examples/donut.js +0 -44
- data/misc/openlayers/examples/drag-feature.html +0 -114
- data/misc/openlayers/examples/draw-feature.html +0 -143
- data/misc/openlayers/examples/draw-undo-redo.html +0 -38
- data/misc/openlayers/examples/draw-undo-redo.js +0 -45
- data/misc/openlayers/examples/dynamic-text-layer.html +0 -101
- data/misc/openlayers/examples/editing-methods.html +0 -58
- data/misc/openlayers/examples/editing-methods.js +0 -83
- data/misc/openlayers/examples/editingtoolbar-outside.html +0 -56
- data/misc/openlayers/examples/editingtoolbar.html +0 -55
- data/misc/openlayers/examples/encoded-polyline.html +0 -47
- data/misc/openlayers/examples/events.html +0 -155
- data/misc/openlayers/examples/example-list.html +0 -302
- data/misc/openlayers/examples/example.html +0 -25
- data/misc/openlayers/examples/example.js +0 -23
- data/misc/openlayers/examples/feature-events.html +0 -46
- data/misc/openlayers/examples/feature-events.js +0 -67
- data/misc/openlayers/examples/filter-strategy.html +0 -54
- data/misc/openlayers/examples/filter-strategy.js +0 -84
- data/misc/openlayers/examples/filter.html +0 -107
- data/misc/openlayers/examples/fractional-zoom.html +0 -72
- data/misc/openlayers/examples/fullScreen.html +0 -53
- data/misc/openlayers/examples/fullScreen.js +0 -20
- data/misc/openlayers/examples/fusiontables.html +0 -35
- data/misc/openlayers/examples/fusiontables.js +0 -51
- data/misc/openlayers/examples/game-accel-ball.html +0 -82
- data/misc/openlayers/examples/geojson-reprojected.html +0 -46
- data/misc/openlayers/examples/geojson-reprojected.js +0 -27
- data/misc/openlayers/examples/geojson-reprojected.json +0 -1
- data/misc/openlayers/examples/geojson.html +0 -77
- data/misc/openlayers/examples/geolocation.html +0 -41
- data/misc/openlayers/examples/geolocation.js +0 -112
- data/misc/openlayers/examples/georss-flickr.html +0 -119
- data/misc/openlayers/examples/georss-markers.html +0 -45
- data/misc/openlayers/examples/georss.html +0 -63
- data/misc/openlayers/examples/georss.xml +0 -378
- data/misc/openlayers/examples/getfeature-wfs.html +0 -84
- data/misc/openlayers/examples/getfeatureinfo-control.html +0 -221
- data/misc/openlayers/examples/getfeatureinfo-popup.html +0 -96
- data/misc/openlayers/examples/gml-layer.html +0 -48
- data/misc/openlayers/examples/gml/line.xml +0 -42
- data/misc/openlayers/examples/gml/multipoint.xml +0 -70
- data/misc/openlayers/examples/gml/multipolygon.xml +0 -106
- data/misc/openlayers/examples/gml/owls.xml +0 -156
- data/misc/openlayers/examples/gml/point.xml +0 -42
- data/misc/openlayers/examples/gml/polygon.xml +0 -89
- data/misc/openlayers/examples/google-static.html +0 -39
- data/misc/openlayers/examples/google-static.js +0 -61
- data/misc/openlayers/examples/google-v3-alloverlays.html +0 -33
- data/misc/openlayers/examples/google-v3-alloverlays.js +0 -35
- data/misc/openlayers/examples/google-v3.html +0 -35
- data/misc/openlayers/examples/google-v3.js +0 -39
- data/misc/openlayers/examples/google.html +0 -69
- data/misc/openlayers/examples/graphic-name.html +0 -42
- data/misc/openlayers/examples/graphic-name.js +0 -67
- data/misc/openlayers/examples/graticule.html +0 -116
- data/misc/openlayers/examples/gutter.html +0 -55
- data/misc/openlayers/examples/highlight-feature.html +0 -88
- data/misc/openlayers/examples/hover-handler.html +0 -216
- data/misc/openlayers/examples/image-layer.html +0 -76
- data/misc/openlayers/examples/img/check-round-green.png +0 -0
- data/misc/openlayers/examples/img/check-round-grey.png +0 -0
- data/misc/openlayers/examples/img/list.png +0 -0
- data/misc/openlayers/examples/img/locate.png +0 -0
- data/misc/openlayers/examples/img/marker_shadow.png +0 -0
- data/misc/openlayers/examples/img/minus1.png +0 -0
- data/misc/openlayers/examples/img/mobile-layers.png +0 -0
- data/misc/openlayers/examples/img/mobile-loc.png +0 -0
- data/misc/openlayers/examples/img/mobile-zoombar.png +0 -0
- data/misc/openlayers/examples/img/openlayers.png +0 -0
- data/misc/openlayers/examples/img/popupMatrix.jpg +0 -0
- data/misc/openlayers/examples/img/small.jpg +0 -0
- data/misc/openlayers/examples/img/thinlong.jpg +0 -0
- data/misc/openlayers/examples/img/widelong.jpg +0 -0
- data/misc/openlayers/examples/img/wideshort.jpg +0 -0
- data/misc/openlayers/examples/intersects.html +0 -193
- data/misc/openlayers/examples/kamap.html +0 -45
- data/misc/openlayers/examples/kamap.txt +0 -508
- data/misc/openlayers/examples/kinetic.html +0 -44
- data/misc/openlayers/examples/kinetic.js +0 -27
- data/misc/openlayers/examples/kml-layer.html +0 -36
- data/misc/openlayers/examples/kml-layer.js +0 -22
- data/misc/openlayers/examples/kml-pointtrack.html +0 -40
- data/misc/openlayers/examples/kml-pointtrack.js +0 -52
- data/misc/openlayers/examples/kml-track.html +0 -42
- data/misc/openlayers/examples/kml-track.js +0 -40
- data/misc/openlayers/examples/kml-track.kml +0 -3359
- data/misc/openlayers/examples/kml/lines.kml +0 -275
- data/misc/openlayers/examples/kml/styles.kml +0 -21
- data/misc/openlayers/examples/kml/sundials.kml +0 -2273
- data/misc/openlayers/examples/label-scale.html +0 -34
- data/misc/openlayers/examples/label-scale.js +0 -72
- data/misc/openlayers/examples/late-render.html +0 -48
- data/misc/openlayers/examples/layer-opacity.html +0 -95
- data/misc/openlayers/examples/layerLoadMonitoring.html +0 -135
- data/misc/openlayers/examples/layerswitcher.html +0 -60
- data/misc/openlayers/examples/light-basic.html +0 -35
- data/misc/openlayers/examples/light-basic.js +0 -67
- data/misc/openlayers/examples/lite.html +0 -39
- data/misc/openlayers/examples/mapbox.html +0 -30
- data/misc/openlayers/examples/mapbox.js +0 -21
- data/misc/openlayers/examples/mapguide.html +0 -155
- data/misc/openlayers/examples/mapquest.html +0 -28
- data/misc/openlayers/examples/mapquest.js +0 -36
- data/misc/openlayers/examples/mapserver.html +0 -41
- data/misc/openlayers/examples/mapserver_untiled.html +0 -43
- data/misc/openlayers/examples/marker-shadow.html +0 -152
- data/misc/openlayers/examples/markerResize.html +0 -60
- data/misc/openlayers/examples/markers.html +0 -59
- data/misc/openlayers/examples/markersTextLayer.html +0 -41
- data/misc/openlayers/examples/measure.html +0 -203
- data/misc/openlayers/examples/mobile-base.js +0 -167
- data/misc/openlayers/examples/mobile-drawing.html +0 -52
- data/misc/openlayers/examples/mobile-drawing.js +0 -71
- data/misc/openlayers/examples/mobile-jq.html +0 -76
- data/misc/openlayers/examples/mobile-jq.js +0 -159
- data/misc/openlayers/examples/mobile-layers.html +0 -62
- data/misc/openlayers/examples/mobile-layers.js +0 -71
- data/misc/openlayers/examples/mobile-navigation.html +0 -52
- data/misc/openlayers/examples/mobile-navigation.js +0 -24
- data/misc/openlayers/examples/mobile-sencha.html +0 -184
- data/misc/openlayers/examples/mobile-sencha.js +0 -198
- data/misc/openlayers/examples/mobile-wmts-vienna.css +0 -205
- data/misc/openlayers/examples/mobile-wmts-vienna.html +0 -27
- data/misc/openlayers/examples/mobile-wmts-vienna.js +0 -281
- data/misc/openlayers/examples/mobile.html +0 -56
- data/misc/openlayers/examples/mobile.js +0 -39
- data/misc/openlayers/examples/modify-feature.html +0 -193
- data/misc/openlayers/examples/mouse-position.html +0 -67
- data/misc/openlayers/examples/mousewheel-interval.html +0 -63
- data/misc/openlayers/examples/multiserver.html +0 -52
- data/misc/openlayers/examples/multitouch.html +0 -28
- data/misc/openlayers/examples/mvs.html +0 -129
- data/misc/openlayers/examples/navigation-control.html +0 -44
- data/misc/openlayers/examples/navigation-history.html +0 -62
- data/misc/openlayers/examples/navtoolbar-alwaysZoom.html +0 -85
- data/misc/openlayers/examples/navtoolbar-outsidemap.html +0 -47
- data/misc/openlayers/examples/navtoolbar.html +0 -46
- data/misc/openlayers/examples/offline-storage.html +0 -44
- data/misc/openlayers/examples/offline-storage.js +0 -199
- data/misc/openlayers/examples/openls.html +0 -88
- data/misc/openlayers/examples/ordering.html +0 -221
- data/misc/openlayers/examples/osm-google.html +0 -32
- data/misc/openlayers/examples/osm-google.js +0 -23
- data/misc/openlayers/examples/osm-grayscale.html +0 -77
- data/misc/openlayers/examples/osm-marker-popup.html +0 -32
- data/misc/openlayers/examples/osm-marker-popup.js +0 -39
- data/misc/openlayers/examples/osm.html +0 -41
- data/misc/openlayers/examples/osm/sutton_coldfield.osm +0 -662
- data/misc/openlayers/examples/overviewmap.html +0 -120
- data/misc/openlayers/examples/pan-zoom-panels.html +0 -97
- data/misc/openlayers/examples/panel.html +0 -99
- data/misc/openlayers/examples/point-grid.html +0 -75
- data/misc/openlayers/examples/point-grid.js +0 -33
- data/misc/openlayers/examples/point-track-markers.html +0 -72
- data/misc/openlayers/examples/polar-projections.html +0 -41
- data/misc/openlayers/examples/polar-projections.js +0 -84
- data/misc/openlayers/examples/popupMatrix.html +0 -652
- data/misc/openlayers/examples/proxy.cgi +0 -81
- data/misc/openlayers/examples/regular-polygons.html +0 -177
- data/misc/openlayers/examples/resize-features.html +0 -101
- data/misc/openlayers/examples/restricted-extent.html +0 -77
- data/misc/openlayers/examples/rotate-features.html +0 -113
- data/misc/openlayers/examples/select-feature-multilayer.html +0 -129
- data/misc/openlayers/examples/select-feature-openpopup.html +0 -106
- data/misc/openlayers/examples/select-feature.html +0 -170
- data/misc/openlayers/examples/setextent.html +0 -39
- data/misc/openlayers/examples/simplify-linestring.html +0 -103
- data/misc/openlayers/examples/simplify-linestring.js +0 -599
- data/misc/openlayers/examples/single-tile.html +0 -33
- data/misc/openlayers/examples/single-tile.js +0 -20
- data/misc/openlayers/examples/sld-parser.html +0 -70
- data/misc/openlayers/examples/sld.html +0 -31
- data/misc/openlayers/examples/sld.js +0 -102
- data/misc/openlayers/examples/snap-grid.html +0 -78
- data/misc/openlayers/examples/snap-grid.js +0 -81
- data/misc/openlayers/examples/snap-split.html +0 -281
- data/misc/openlayers/examples/snapping.html +0 -324
- data/misc/openlayers/examples/sos.html +0 -189
- data/misc/openlayers/examples/spherical-mercator.html +0 -120
- data/misc/openlayers/examples/split-feature.html +0 -116
- data/misc/openlayers/examples/strategy-bbox.html +0 -106
- data/misc/openlayers/examples/strategy-cluster-extended.html +0 -125
- data/misc/openlayers/examples/strategy-cluster-extended.js +0 -247
- data/misc/openlayers/examples/strategy-cluster-threshold.html +0 -149
- data/misc/openlayers/examples/strategy-cluster.html +0 -238
- data/misc/openlayers/examples/strategy-paging.html +0 -115
- data/misc/openlayers/examples/style-rules.html +0 -49
- data/misc/openlayers/examples/style-rules.js +0 -99
- data/misc/openlayers/examples/style.css +0 -143
- data/misc/openlayers/examples/style.mobile-jq.css +0 -62
- data/misc/openlayers/examples/stylemap.html +0 -100
- data/misc/openlayers/examples/styles-context.html +0 -117
- data/misc/openlayers/examples/styles-rotation.html +0 -93
- data/misc/openlayers/examples/styles-unique.html +0 -109
- data/misc/openlayers/examples/sundials-spherical-mercator.html +0 -111
- data/misc/openlayers/examples/sundials.html +0 -107
- data/misc/openlayers/examples/symbolizers-fill-stroke-graphic.html +0 -141
- data/misc/openlayers/examples/tasmania/TasmaniaCities.xml +0 -40
- data/misc/openlayers/examples/tasmania/TasmaniaRoads.xml +0 -204
- data/misc/openlayers/examples/tasmania/TasmaniaStateBoundaries.xml +0 -92
- data/misc/openlayers/examples/tasmania/TasmaniaWaterBodies.xml +0 -162
- data/misc/openlayers/examples/tasmania/sld-tasmania.xml +0 -594
- data/misc/openlayers/examples/teleportation.html +0 -76
- data/misc/openlayers/examples/textfile.txt +0 -4
- data/misc/openlayers/examples/tile-origin.html +0 -38
- data/misc/openlayers/examples/tile-origin.js +0 -16
- data/misc/openlayers/examples/tilecache.html +0 -58
- data/misc/openlayers/examples/tms.html +0 -62
- data/misc/openlayers/examples/transform-feature.html +0 -123
- data/misc/openlayers/examples/transition.html +0 -70
- data/misc/openlayers/examples/using-proj4js.html +0 -109
- data/misc/openlayers/examples/using-proj4js.js +0 -132
- data/misc/openlayers/examples/utfgrid-geography-class.html +0 -51
- data/misc/openlayers/examples/utfgrid-geography-class.js +0 -62
- data/misc/openlayers/examples/utfgrid.html +0 -64
- data/misc/openlayers/examples/utfgrid.js +0 -61
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/0/2.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/1/2.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/bio_utfgrid/1/2/2.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/0/0/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/1/0/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/1/0/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/1/1/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/1/1/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/2.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/0/3.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/2.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/1/3.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/2.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/2/3.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/0.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/1.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/2.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/geography-class/2/3/3.grid.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/0/2.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/1/2.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/0.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/1.json +0 -1
- data/misc/openlayers/examples/utfgrid/world_utfgrid/1/2/2.json +0 -1
- data/misc/openlayers/examples/utfgrid_twogrids.html +0 -51
- data/misc/openlayers/examples/utfgrid_twogrids.js +0 -70
- data/misc/openlayers/examples/vector-features-with-text.html +0 -138
- data/misc/openlayers/examples/vector-features.html +0 -149
- data/misc/openlayers/examples/vector-formats.html +0 -240
- data/misc/openlayers/examples/web-mercator.html +0 -50
- data/misc/openlayers/examples/web-mercator.js +0 -37
- data/misc/openlayers/examples/wfs-filter.html +0 -35
- data/misc/openlayers/examples/wfs-filter.js +0 -48
- data/misc/openlayers/examples/wfs-protocol-transactions.html +0 -104
- data/misc/openlayers/examples/wfs-protocol-transactions.js +0 -106
- data/misc/openlayers/examples/wfs-protocol.html +0 -55
- data/misc/openlayers/examples/wfs-reprojection.html +0 -42
- data/misc/openlayers/examples/wfs-reprojection.js +0 -60
- data/misc/openlayers/examples/wfs-snap-split.html +0 -292
- data/misc/openlayers/examples/wfs-spatial-filter.html +0 -37
- data/misc/openlayers/examples/wfs-spatial-filter.js +0 -36
- data/misc/openlayers/examples/wfs-states.html +0 -34
- data/misc/openlayers/examples/wfs-states.js +0 -35
- data/misc/openlayers/examples/wmc.html +0 -150
- data/misc/openlayers/examples/wms-long-url.html +0 -44
- data/misc/openlayers/examples/wms-long-url.js +0 -26
- data/misc/openlayers/examples/wms-untiled.html +0 -48
- data/misc/openlayers/examples/wms-v13.html +0 -57
- data/misc/openlayers/examples/wms.html +0 -49
- data/misc/openlayers/examples/wmst.html +0 -63
- data/misc/openlayers/examples/wmts-capabilities.html +0 -43
- data/misc/openlayers/examples/wmts-capabilities.js +0 -58
- data/misc/openlayers/examples/wmts-getfeatureinfo.html +0 -74
- data/misc/openlayers/examples/wmts-getfeatureinfo.js +0 -94
- data/misc/openlayers/examples/wmts.html +0 -41
- data/misc/openlayers/examples/wmts.js +0 -35
- data/misc/openlayers/examples/wps-client.html +0 -31
- data/misc/openlayers/examples/wps-client.js +0 -75
- data/misc/openlayers/examples/wps.html +0 -89
- data/misc/openlayers/examples/wps.js +0 -353
- data/misc/openlayers/examples/wrapDateLine.html +0 -73
- data/misc/openlayers/examples/xhtml.html +0 -42
- data/misc/openlayers/examples/xml.html +0 -161
- data/misc/openlayers/examples/xml/features.xml +0 -2
- data/misc/openlayers/examples/xml/georss-flickr.xml +0 -730
- data/misc/openlayers/examples/xml/track1.xml +0 -98
- data/misc/openlayers/examples/xml/wmsdescribelayer.xml +0 -5
- data/misc/openlayers/examples/xyz-esri.html +0 -45
- data/misc/openlayers/examples/yelp-georss.xml +0 -147
- data/misc/openlayers/examples/zoom.html +0 -68
- data/misc/openlayers/examples/zoom.js +0 -34
- data/misc/openlayers/examples/zoomLevels.html +0 -81
- data/misc/openlayers/examples/zoomify.html +0 -70
- data/misc/openlayers/img/blank.gif +0 -0
- data/misc/openlayers/img/cloud-popup-relative.png +0 -0
- data/misc/openlayers/img/drag-rectangle-off.png +0 -0
- data/misc/openlayers/img/drag-rectangle-on.png +0 -0
- data/misc/openlayers/img/east-mini.png +0 -0
- data/misc/openlayers/img/layer-switcher-maximize.png +0 -0
- data/misc/openlayers/img/layer-switcher-minimize.png +0 -0
- data/misc/openlayers/img/marker-blue.png +0 -0
- data/misc/openlayers/img/marker-gold.png +0 -0
- data/misc/openlayers/img/marker-green.png +0 -0
- data/misc/openlayers/img/marker.png +0 -0
- data/misc/openlayers/img/measuring-stick-off.png +0 -0
- data/misc/openlayers/img/measuring-stick-on.png +0 -0
- data/misc/openlayers/img/north-mini.png +0 -0
- data/misc/openlayers/img/panning-hand-off.png +0 -0
- data/misc/openlayers/img/panning-hand-on.png +0 -0
- data/misc/openlayers/img/slider.png +0 -0
- data/misc/openlayers/img/south-mini.png +0 -0
- data/misc/openlayers/img/west-mini.png +0 -0
- data/misc/openlayers/img/zoom-minus-mini.png +0 -0
- data/misc/openlayers/img/zoom-plus-mini.png +0 -0
- data/misc/openlayers/img/zoom-world-mini.png +0 -0
- data/misc/openlayers/img/zoombar.png +0 -0
- data/misc/openlayers/lib/Firebug/errorIcon.png +0 -0
- data/misc/openlayers/lib/Firebug/firebug.css +0 -209
- data/misc/openlayers/lib/Firebug/firebug.html +0 -23
- data/misc/openlayers/lib/Firebug/firebug.js +0 -674
- data/misc/openlayers/lib/Firebug/firebugx.js +0 -10
- data/misc/openlayers/lib/Firebug/infoIcon.png +0 -0
- data/misc/openlayers/lib/Firebug/license.txt +0 -30
- data/misc/openlayers/lib/Firebug/readme.txt +0 -13
- data/misc/openlayers/lib/Firebug/warningIcon.png +0 -0
- data/misc/openlayers/lib/OpenLayers.js +0 -429
- data/misc/openlayers/lib/OpenLayers/Animation.js +0 -102
- data/misc/openlayers/lib/OpenLayers/BaseTypes.js +0 -463
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Bounds.js +0 -837
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Class.js +0 -121
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Date.js +0 -123
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Element.js +0 -189
- data/misc/openlayers/lib/OpenLayers/BaseTypes/LonLat.js +0 -215
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Pixel.js +0 -143
- data/misc/openlayers/lib/OpenLayers/BaseTypes/Size.js +0 -89
- data/misc/openlayers/lib/OpenLayers/Console.js +0 -250
- data/misc/openlayers/lib/OpenLayers/Control.js +0 -371
- data/misc/openlayers/lib/OpenLayers/Control/ArgParser.js +0 -182
- data/misc/openlayers/lib/OpenLayers/Control/Attribution.js +0 -104
- data/misc/openlayers/lib/OpenLayers/Control/Button.js +0 -44
- data/misc/openlayers/lib/OpenLayers/Control/CacheRead.js +0 -156
- data/misc/openlayers/lib/OpenLayers/Control/CacheWrite.js +0 -257
- data/misc/openlayers/lib/OpenLayers/Control/DragFeature.js +0 -366
- data/misc/openlayers/lib/OpenLayers/Control/DragPan.js +0 -156
- data/misc/openlayers/lib/OpenLayers/Control/DrawFeature.js +0 -229
- data/misc/openlayers/lib/OpenLayers/Control/EditingToolbar.js +0 -81
- data/misc/openlayers/lib/OpenLayers/Control/Geolocate.js +0 -192
- data/misc/openlayers/lib/OpenLayers/Control/GetFeature.js +0 -597
- data/misc/openlayers/lib/OpenLayers/Control/Graticule.js +0 -377
- data/misc/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js +0 -142
- data/misc/openlayers/lib/OpenLayers/Control/LayerSwitcher.js +0 -521
- data/misc/openlayers/lib/OpenLayers/Control/Measure.js +0 -379
- data/misc/openlayers/lib/OpenLayers/Control/ModifyFeature.js +0 -835
- data/misc/openlayers/lib/OpenLayers/Control/MousePosition.js +0 -227
- data/misc/openlayers/lib/OpenLayers/Control/NavToolbar.js +0 -57
- data/misc/openlayers/lib/OpenLayers/Control/Navigation.js +0 -345
- data/misc/openlayers/lib/OpenLayers/Control/NavigationHistory.js +0 -423
- data/misc/openlayers/lib/OpenLayers/Control/OverviewMap.js +0 -750
- data/misc/openlayers/lib/OpenLayers/Control/Pan.js +0 -95
- data/misc/openlayers/lib/OpenLayers/Control/PanPanel.js +0 -73
- data/misc/openlayers/lib/OpenLayers/Control/PanZoom.js +0 -233
- data/misc/openlayers/lib/OpenLayers/Control/PanZoomBar.js +0 -408
- data/misc/openlayers/lib/OpenLayers/Control/Panel.js +0 -431
- data/misc/openlayers/lib/OpenLayers/Control/Permalink.js +0 -257
- data/misc/openlayers/lib/OpenLayers/Control/PinchZoom.js +0 -157
- data/misc/openlayers/lib/OpenLayers/Control/SLDSelect.js +0 -567
- data/misc/openlayers/lib/OpenLayers/Control/Scale.js +0 -100
- data/misc/openlayers/lib/OpenLayers/Control/ScaleLine.js +0 -220
- data/misc/openlayers/lib/OpenLayers/Control/SelectFeature.js +0 -643
- data/misc/openlayers/lib/OpenLayers/Control/Snapping.js +0 -560
- data/misc/openlayers/lib/OpenLayers/Control/Split.js +0 -494
- data/misc/openlayers/lib/OpenLayers/Control/TouchNavigation.js +0 -182
- data/misc/openlayers/lib/OpenLayers/Control/TransformFeature.js +0 -624
- data/misc/openlayers/lib/OpenLayers/Control/UTFGrid.js +0 -240
- data/misc/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js +0 -532
- data/misc/openlayers/lib/OpenLayers/Control/WMTSGetFeatureInfo.js +0 -400
- data/misc/openlayers/lib/OpenLayers/Control/Zoom.js +0 -138
- data/misc/openlayers/lib/OpenLayers/Control/ZoomBox.js +0 -129
- data/misc/openlayers/lib/OpenLayers/Control/ZoomIn.js +0 -29
- data/misc/openlayers/lib/OpenLayers/Control/ZoomOut.js +0 -29
- data/misc/openlayers/lib/OpenLayers/Control/ZoomPanel.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js +0 -35
- data/misc/openlayers/lib/OpenLayers/Events.js +0 -1170
- data/misc/openlayers/lib/OpenLayers/Events/buttonclick.js +0 -206
- data/misc/openlayers/lib/OpenLayers/Events/featureclick.js +0 -321
- data/misc/openlayers/lib/OpenLayers/Feature.js +0 -225
- data/misc/openlayers/lib/OpenLayers/Feature/Vector.js +0 -510
- data/misc/openlayers/lib/OpenLayers/Filter.js +0 -87
- data/misc/openlayers/lib/OpenLayers/Filter/Comparison.js +0 -267
- data/misc/openlayers/lib/OpenLayers/Filter/FeatureId.js +0 -87
- data/misc/openlayers/lib/OpenLayers/Filter/Function.js +0 -49
- data/misc/openlayers/lib/OpenLayers/Filter/Logical.js +0 -121
- data/misc/openlayers/lib/OpenLayers/Filter/Spatial.js +0 -122
- data/misc/openlayers/lib/OpenLayers/Format.js +0 -123
- data/misc/openlayers/lib/OpenLayers/Format/ArcXML.js +0 -1028
- data/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js +0 -46
- data/misc/openlayers/lib/OpenLayers/Format/Atom.js +0 -712
- data/misc/openlayers/lib/OpenLayers/Format/CQL.js +0 -452
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js +0 -34
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js +0 -240
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js +0 -34
- data/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js +0 -457
- data/misc/openlayers/lib/OpenLayers/Format/Context.js +0 -334
- data/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js +0 -557
- data/misc/openlayers/lib/OpenLayers/Format/Filter.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js +0 -504
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js +0 -184
- data/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js +0 -222
- data/misc/openlayers/lib/OpenLayers/Format/GML.js +0 -923
- data/misc/openlayers/lib/OpenLayers/Format/GML/Base.js +0 -645
- data/misc/openlayers/lib/OpenLayers/Format/GML/v2.js +0 -193
- data/misc/openlayers/lib/OpenLayers/Format/GML/v3.js +0 -477
- data/misc/openlayers/lib/OpenLayers/Format/GPX.js +0 -385
- data/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js +0 -716
- data/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js +0 -409
- data/misc/openlayers/lib/OpenLayers/Format/JSON.js +0 -398
- data/misc/openlayers/lib/OpenLayers/Format/KML.js +0 -1517
- data/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js +0 -108
- data/misc/openlayers/lib/OpenLayers/Format/OSM.js +0 -465
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js +0 -78
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js +0 -318
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js +0 -62
- data/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js +0 -116
- data/misc/openlayers/lib/OpenLayers/Format/OWSContext.js +0 -86
- data/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js +0 -595
- data/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js +0 -183
- data/misc/openlayers/lib/OpenLayers/Format/SLD.js +0 -81
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js +0 -1309
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js +0 -46
- data/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js +0 -149
- data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js +0 -48
- data/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js +0 -158
- data/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js +0 -190
- data/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js +0 -302
- data/misc/openlayers/lib/OpenLayers/Format/Text.js +0 -151
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js +0 -47
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js +0 -55
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js +0 -170
- data/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js +0 -109
- data/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js +0 -199
- data/misc/openlayers/lib/OpenLayers/Format/WFS.js +0 -223
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js +0 -47
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js +0 -129
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js +0 -115
- data/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js +0 -63
- data/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js +0 -234
- data/misc/openlayers/lib/OpenLayers/Format/WFST.js +0 -34
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js +0 -446
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js +0 -174
- data/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js +0 -189
- data/misc/openlayers/lib/OpenLayers/Format/WKT.js +0 -392
- data/misc/openlayers/lib/OpenLayers/Format/WMC.js +0 -182
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js +0 -1267
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js +0 -104
- data/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js +0 -149
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js +0 -56
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js +0 -368
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js +0 -122
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js +0 -57
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js +0 -60
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js +0 -85
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js +0 -128
- data/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js +0 -30
- data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js +0 -122
- data/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js +0 -296
- data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js +0 -230
- data/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js +0 -251
- data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js +0 -48
- data/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js +0 -119
- data/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js +0 -185
- data/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js +0 -395
- data/misc/openlayers/lib/OpenLayers/Format/XLS.js +0 -68
- data/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js +0 -304
- data/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js +0 -48
- data/misc/openlayers/lib/OpenLayers/Format/XML.js +0 -897
- data/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js +0 -212
- data/misc/openlayers/lib/OpenLayers/Geometry.js +0 -500
- data/misc/openlayers/lib/OpenLayers/Geometry/Collection.js +0 -563
- data/misc/openlayers/lib/OpenLayers/Geometry/Curve.js +0 -89
- data/misc/openlayers/lib/OpenLayers/Geometry/LineString.js +0 -646
- data/misc/openlayers/lib/OpenLayers/Geometry/LinearRing.js +0 -433
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiLineString.js +0 -258
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiPoint.js +0 -66
- data/misc/openlayers/lib/OpenLayers/Geometry/MultiPolygon.js +0 -42
- data/misc/openlayers/lib/OpenLayers/Geometry/Point.js +0 -283
- data/misc/openlayers/lib/OpenLayers/Geometry/Polygon.js +0 -255
- data/misc/openlayers/lib/OpenLayers/Handler.js +0 -325
- data/misc/openlayers/lib/OpenLayers/Handler/Box.js +0 -244
- data/misc/openlayers/lib/OpenLayers/Handler/Click.js +0 -505
- data/misc/openlayers/lib/OpenLayers/Handler/Drag.js +0 -547
- data/misc/openlayers/lib/OpenLayers/Handler/Feature.js +0 -434
- data/misc/openlayers/lib/OpenLayers/Handler/Hover.js +0 -180
- data/misc/openlayers/lib/OpenLayers/Handler/Keyboard.js +0 -117
- data/misc/openlayers/lib/OpenLayers/Handler/MouseWheel.js +0 -264
- data/misc/openlayers/lib/OpenLayers/Handler/Path.js +0 -543
- data/misc/openlayers/lib/OpenLayers/Handler/Pinch.js +0 -239
- data/misc/openlayers/lib/OpenLayers/Handler/Point.js +0 -556
- data/misc/openlayers/lib/OpenLayers/Handler/Polygon.js +0 -305
- data/misc/openlayers/lib/OpenLayers/Handler/RegularPolygon.js +0 -429
- data/misc/openlayers/lib/OpenLayers/Icon.js +0 -243
- data/misc/openlayers/lib/OpenLayers/Kinetic.js +0 -178
- data/misc/openlayers/lib/OpenLayers/Lang.js +0 -134
- data/misc/openlayers/lib/OpenLayers/Lang/ar.js +0 -32
- data/misc/openlayers/lib/OpenLayers/Lang/be-tarask.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Lang/bg.js +0 -25
- data/misc/openlayers/lib/OpenLayers/Lang/br.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/ca.js +0 -89
- data/misc/openlayers/lib/OpenLayers/Lang/cs-CZ.js +0 -45
- data/misc/openlayers/lib/OpenLayers/Lang/da-DK.js +0 -80
- data/misc/openlayers/lib/OpenLayers/Lang/de.js +0 -55
- data/misc/openlayers/lib/OpenLayers/Lang/el.js +0 -19
- data/misc/openlayers/lib/OpenLayers/Lang/en-CA.js +0 -21
- data/misc/openlayers/lib/OpenLayers/Lang/en.js +0 -89
- data/misc/openlayers/lib/OpenLayers/Lang/es.js +0 -90
- data/misc/openlayers/lib/OpenLayers/Lang/fi.js +0 -32
- data/misc/openlayers/lib/OpenLayers/Lang/fr.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/fur.js +0 -35
- data/misc/openlayers/lib/OpenLayers/Lang/gl.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/gsw.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/hr.js +0 -37
- data/misc/openlayers/lib/OpenLayers/Lang/hsb.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/hu.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Lang/ia.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/id.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Lang/io.js +0 -19
- data/misc/openlayers/lib/OpenLayers/Lang/is.js +0 -27
- data/misc/openlayers/lib/OpenLayers/Lang/it.js +0 -80
- data/misc/openlayers/lib/OpenLayers/Lang/ja.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Lang/km.js +0 -23
- data/misc/openlayers/lib/OpenLayers/Lang/ksh.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/lt.js +0 -47
- data/misc/openlayers/lib/OpenLayers/Lang/nb.js +0 -82
- data/misc/openlayers/lib/OpenLayers/Lang/nds.js +0 -37
- data/misc/openlayers/lib/OpenLayers/Lang/nl.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/nn.js +0 -19
- data/misc/openlayers/lib/OpenLayers/Lang/oc.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/pl.js +0 -89
- data/misc/openlayers/lib/OpenLayers/Lang/pt-BR.js +0 -54
- data/misc/openlayers/lib/OpenLayers/Lang/pt.js +0 -55
- data/misc/openlayers/lib/OpenLayers/Lang/ro.js +0 -69
- data/misc/openlayers/lib/OpenLayers/Lang/ru.js +0 -56
- data/misc/openlayers/lib/OpenLayers/Lang/sk.js +0 -44
- data/misc/openlayers/lib/OpenLayers/Lang/sv-SE.js +0 -45
- data/misc/openlayers/lib/OpenLayers/Lang/te.js +0 -27
- data/misc/openlayers/lib/OpenLayers/Lang/vi.js +0 -53
- data/misc/openlayers/lib/OpenLayers/Lang/zh-CN.js +0 -80
- data/misc/openlayers/lib/OpenLayers/Lang/zh-TW.js +0 -81
- data/misc/openlayers/lib/OpenLayers/Layer.js +0 -1377
- data/misc/openlayers/lib/OpenLayers/Layer/ArcGIS93Rest.js +0 -225
- data/misc/openlayers/lib/OpenLayers/Layer/ArcGISCache.js +0 -480
- data/misc/openlayers/lib/OpenLayers/Layer/ArcIMS.js +0 -425
- data/misc/openlayers/lib/OpenLayers/Layer/Bing.js +0 -333
- data/misc/openlayers/lib/OpenLayers/Layer/Boxes.js +0 -76
- data/misc/openlayers/lib/OpenLayers/Layer/EventPane.js +0 -441
- data/misc/openlayers/lib/OpenLayers/Layer/FixedZoomLevels.js +0 -319
- data/misc/openlayers/lib/OpenLayers/Layer/GeoRSS.js +0 -265
- data/misc/openlayers/lib/OpenLayers/Layer/Google.js +0 -809
- data/misc/openlayers/lib/OpenLayers/Layer/Google/v3.js +0 -351
- data/misc/openlayers/lib/OpenLayers/Layer/Grid.js +0 -1343
- data/misc/openlayers/lib/OpenLayers/Layer/HTTPRequest.js +0 -230
- data/misc/openlayers/lib/OpenLayers/Layer/Image.js +0 -259
- data/misc/openlayers/lib/OpenLayers/Layer/KaMap.js +0 -192
- data/misc/openlayers/lib/OpenLayers/Layer/KaMapCache.js +0 -143
- data/misc/openlayers/lib/OpenLayers/Layer/MapGuide.js +0 -443
- data/misc/openlayers/lib/OpenLayers/Layer/MapServer.js +0 -181
- data/misc/openlayers/lib/OpenLayers/Layer/Markers.js +0 -187
- data/misc/openlayers/lib/OpenLayers/Layer/OSM.js +0 -123
- data/misc/openlayers/lib/OpenLayers/Layer/PointGrid.js +0 -299
- data/misc/openlayers/lib/OpenLayers/Layer/PointTrack.js +0 -125
- data/misc/openlayers/lib/OpenLayers/Layer/SphericalMercator.js +0 -146
- data/misc/openlayers/lib/OpenLayers/Layer/TMS.js +0 -202
- data/misc/openlayers/lib/OpenLayers/Layer/Text.js +0 -267
- data/misc/openlayers/lib/OpenLayers/Layer/TileCache.js +0 -140
- data/misc/openlayers/lib/OpenLayers/Layer/UTFGrid.js +0 -184
- data/misc/openlayers/lib/OpenLayers/Layer/Vector.js +0 -1007
- data/misc/openlayers/lib/OpenLayers/Layer/Vector/RootContainer.js +0 -154
- data/misc/openlayers/lib/OpenLayers/Layer/WMS.js +0 -267
- data/misc/openlayers/lib/OpenLayers/Layer/WMTS.js +0 -510
- data/misc/openlayers/lib/OpenLayers/Layer/WorldWind.js +0 -105
- data/misc/openlayers/lib/OpenLayers/Layer/XYZ.js +0 -172
- data/misc/openlayers/lib/OpenLayers/Layer/Zoomify.js +0 -260
- data/misc/openlayers/lib/OpenLayers/Map.js +0 -2867
- data/misc/openlayers/lib/OpenLayers/Marker.js +0 -241
- data/misc/openlayers/lib/OpenLayers/Marker/Box.js +0 -120
- data/misc/openlayers/lib/OpenLayers/Popup.js +0 -1065
- data/misc/openlayers/lib/OpenLayers/Popup/Anchored.js +0 -195
- data/misc/openlayers/lib/OpenLayers/Popup/Framed.js +0 -343
- data/misc/openlayers/lib/OpenLayers/Popup/FramedCloud.js +0 -227
- data/misc/openlayers/lib/OpenLayers/Projection.js +0 -322
- data/misc/openlayers/lib/OpenLayers/Protocol.js +0 -291
- data/misc/openlayers/lib/OpenLayers/Protocol/CSW.js +0 -30
- data/misc/openlayers/lib/OpenLayers/Protocol/CSW/v2_0_2.js +0 -127
- data/misc/openlayers/lib/OpenLayers/Protocol/HTTP.js +0 -580
- data/misc/openlayers/lib/OpenLayers/Protocol/SOS.js +0 -33
- data/misc/openlayers/lib/OpenLayers/Protocol/SOS/v1_0_0.js +0 -133
- data/misc/openlayers/lib/OpenLayers/Protocol/Script.js +0 -377
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS.js +0 -86
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1.js +0 -453
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_0_0.js +0 -44
- data/misc/openlayers/lib/OpenLayers/Protocol/WFS/v1_1_0.js +0 -68
- data/misc/openlayers/lib/OpenLayers/Renderer.js +0 -432
- data/misc/openlayers/lib/OpenLayers/Renderer/Canvas.js +0 -906
- data/misc/openlayers/lib/OpenLayers/Renderer/Elements.js +0 -1053
- data/misc/openlayers/lib/OpenLayers/Renderer/SVG.js +0 -1012
- data/misc/openlayers/lib/OpenLayers/Renderer/VML.js +0 -985
- data/misc/openlayers/lib/OpenLayers/Request.js +0 -429
- data/misc/openlayers/lib/OpenLayers/Request/XMLHttpRequest.js +0 -458
- data/misc/openlayers/lib/OpenLayers/Rule.js +0 -236
- data/misc/openlayers/lib/OpenLayers/SingleFile.js +0 -78
- data/misc/openlayers/lib/OpenLayers/Spherical.js +0 -67
- data/misc/openlayers/lib/OpenLayers/Strategy.js +0 -121
- data/misc/openlayers/lib/OpenLayers/Strategy/BBOX.js +0 -290
- data/misc/openlayers/lib/OpenLayers/Strategy/Cluster.js +0 -283
- data/misc/openlayers/lib/OpenLayers/Strategy/Filter.js +0 -159
- data/misc/openlayers/lib/OpenLayers/Strategy/Fixed.js +0 -135
- data/misc/openlayers/lib/OpenLayers/Strategy/Paging.js +0 -233
- data/misc/openlayers/lib/OpenLayers/Strategy/Refresh.js +0 -141
- data/misc/openlayers/lib/OpenLayers/Strategy/Save.js +0 -231
- data/misc/openlayers/lib/OpenLayers/Style.js +0 -448
- data/misc/openlayers/lib/OpenLayers/Style2.js +0 -112
- data/misc/openlayers/lib/OpenLayers/StyleMap.js +0 -161
- data/misc/openlayers/lib/OpenLayers/Symbolizer.js +0 -55
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Line.js +0 -74
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Point.js +0 -157
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Polygon.js +0 -88
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Raster.js +0 -34
- data/misc/openlayers/lib/OpenLayers/Symbolizer/Text.js +0 -70
- data/misc/openlayers/lib/OpenLayers/Tile.js +0 -292
- data/misc/openlayers/lib/OpenLayers/Tile/Image.js +0 -510
- data/misc/openlayers/lib/OpenLayers/Tile/Image/IFrame.js +0 -233
- data/misc/openlayers/lib/OpenLayers/Tile/UTFGrid.js +0 -252
- data/misc/openlayers/lib/OpenLayers/TileManager.js +0 -462
- data/misc/openlayers/lib/OpenLayers/Tween.js +0 -361
- data/misc/openlayers/lib/OpenLayers/Util.js +0 -1773
- data/misc/openlayers/lib/OpenLayers/Util/vendorPrefix.js +0 -131
- data/misc/openlayers/lib/OpenLayers/WPSClient.js +0 -223
- data/misc/openlayers/lib/OpenLayers/WPSProcess.js +0 -501
- data/misc/openlayers/lib/Rico/Color.js +0 -253
- data/misc/openlayers/lib/Rico/Corner.js +0 -339
- data/misc/openlayers/lib/Rico/license.js +0 -19
- data/misc/openlayers/lib/deprecated.js +0 -5842
- data/misc/openlayers/license.txt +0 -27
- data/misc/openlayers/licenses/APACHE-2.0.txt +0 -202
- data/misc/openlayers/licenses/BSD-LICENSE.txt +0 -28
- data/misc/openlayers/licenses/MIT-LICENSE.txt +0 -18
- data/misc/openlayers/notes/2.12.md +0 -391
- data/misc/openlayers/notes/2.13.md +0 -159
- data/misc/openlayers/readme.md +0 -79
- data/misc/openlayers/tests/Animation.html +0 -96
- data/misc/openlayers/tests/BaseTypes.html +0 -387
- data/misc/openlayers/tests/BaseTypes/Bounds.html +0 -738
- data/misc/openlayers/tests/BaseTypes/Class.html +0 -350
- data/misc/openlayers/tests/BaseTypes/Date.html +0 -191
- data/misc/openlayers/tests/BaseTypes/Element.html +0 -195
- data/misc/openlayers/tests/BaseTypes/LonLat.html +0 -241
- data/misc/openlayers/tests/BaseTypes/Pixel.html +0 -123
- data/misc/openlayers/tests/BaseTypes/Size.html +0 -67
- data/misc/openlayers/tests/Console.html +0 -39
- data/misc/openlayers/tests/Control.html +0 -107
- data/misc/openlayers/tests/Control/ArgParser.html +0 -26
- data/misc/openlayers/tests/Control/Attribution.html +0 -60
- data/misc/openlayers/tests/Control/Button.html +0 -17
- data/misc/openlayers/tests/Control/CacheRead.html +0 -108
- data/misc/openlayers/tests/Control/CacheWrite.html +0 -90
- data/misc/openlayers/tests/Control/DragFeature.html +0 -383
- data/misc/openlayers/tests/Control/DragPan.html +0 -104
- data/misc/openlayers/tests/Control/DrawFeature.html +0 -160
- data/misc/openlayers/tests/Control/EditingToolbar.html +0 -33
- data/misc/openlayers/tests/Control/Geolocate.html +0 -129
- data/misc/openlayers/tests/Control/GetFeature.html +0 -177
- data/misc/openlayers/tests/Control/Graticule.html +0 -66
- data/misc/openlayers/tests/Control/KeyboardDefaults.html +0 -173
- data/misc/openlayers/tests/Control/LayerSwitcher.html +0 -249
- data/misc/openlayers/tests/Control/Measure.html +0 -386
- data/misc/openlayers/tests/Control/ModifyFeature.html +0 -828
- data/misc/openlayers/tests/Control/MousePosition.html +0 -109
- data/misc/openlayers/tests/Control/NavToolbar.html +0 -45
- data/misc/openlayers/tests/Control/Navigation.html +0 -200
- data/misc/openlayers/tests/Control/NavigationHistory.html +0 -245
- data/misc/openlayers/tests/Control/OverviewMap.html +0 -266
- data/misc/openlayers/tests/Control/Pan.html +0 -201
- data/misc/openlayers/tests/Control/PanPanel.html +0 -61
- data/misc/openlayers/tests/Control/PanZoom.html +0 -244
- data/misc/openlayers/tests/Control/PanZoomBar.html +0 -245
- data/misc/openlayers/tests/Control/Panel.html +0 -382
- data/misc/openlayers/tests/Control/Permalink.html +0 -453
- data/misc/openlayers/tests/Control/PinchZoom.html +0 -134
- data/misc/openlayers/tests/Control/SLDSelect.html +0 -239
- data/misc/openlayers/tests/Control/Scale.html +0 -54
- data/misc/openlayers/tests/Control/ScaleLine.html +0 -187
- data/misc/openlayers/tests/Control/SelectFeature.html +0 -632
- data/misc/openlayers/tests/Control/Snapping.html +0 -448
- data/misc/openlayers/tests/Control/Split.html +0 -319
- data/misc/openlayers/tests/Control/TouchNavigation.html +0 -155
- data/misc/openlayers/tests/Control/TransformFeature.html +0 -129
- data/misc/openlayers/tests/Control/UTFGrid.html +0 -120
- data/misc/openlayers/tests/Control/WMSGetFeatureInfo.html +0 -644
- data/misc/openlayers/tests/Control/WMTSGetFeatureInfo.html +0 -334
- data/misc/openlayers/tests/Control/Zoom.html +0 -83
- data/misc/openlayers/tests/Control/ZoomBox.html +0 -54
- data/misc/openlayers/tests/Control/ZoomIn.html +0 -101
- data/misc/openlayers/tests/Control/ZoomOut.html +0 -100
- data/misc/openlayers/tests/Control/ZoomToMaxExtent.html +0 -102
- data/misc/openlayers/tests/Events.html +0 -487
- data/misc/openlayers/tests/Events/buttonclick.html +0 -214
- data/misc/openlayers/tests/Events/featureclick.html +0 -91
- data/misc/openlayers/tests/Extras.html +0 -21
- data/misc/openlayers/tests/Feature.html +0 -205
- data/misc/openlayers/tests/Feature/Vector.html +0 -170
- data/misc/openlayers/tests/Filter.html +0 -31
- data/misc/openlayers/tests/Filter/Comparison.html +0 -373
- data/misc/openlayers/tests/Filter/FeatureId.html +0 -67
- data/misc/openlayers/tests/Filter/Logical.html +0 -144
- data/misc/openlayers/tests/Filter/Spatial.html +0 -112
- data/misc/openlayers/tests/Format.html +0 -23
- data/misc/openlayers/tests/Format/ArcXML.html +0 -277
- data/misc/openlayers/tests/Format/ArcXML/Features.html +0 -69
- data/misc/openlayers/tests/Format/Atom.html +0 -450
- data/misc/openlayers/tests/Format/CQL.html +0 -364
- data/misc/openlayers/tests/Format/CSWGetDomain.html +0 -23
- data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.html +0 -56
- data/misc/openlayers/tests/Format/CSWGetDomain/v2_0_2.js +0 -18
- data/misc/openlayers/tests/Format/CSWGetRecords.html +0 -23
- data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.html +0 -88
- data/misc/openlayers/tests/Format/CSWGetRecords/v2_0_2.js +0 -50
- data/misc/openlayers/tests/Format/EncodedPolyline.html +0 -372
- data/misc/openlayers/tests/Format/Filter.html +0 -21
- data/misc/openlayers/tests/Format/Filter/v1.html +0 -404
- data/misc/openlayers/tests/Format/Filter/v1_0_0.html +0 -295
- data/misc/openlayers/tests/Format/Filter/v1_1_0.html +0 -402
- data/misc/openlayers/tests/Format/GML.html +0 -462
- data/misc/openlayers/tests/Format/GML/cases.js +0 -232
- data/misc/openlayers/tests/Format/GML/v2.html +0 -684
- data/misc/openlayers/tests/Format/GML/v3.html +0 -828
- data/misc/openlayers/tests/Format/GPX.html +0 -179
- data/misc/openlayers/tests/Format/GeoJSON.html +0 -468
- data/misc/openlayers/tests/Format/GeoRSS.html +0 -122
- data/misc/openlayers/tests/Format/JSON.html +0 -53
- data/misc/openlayers/tests/Format/KML.html +0 -1437
- data/misc/openlayers/tests/Format/OGCExceptionReport.html +0 -100
- data/misc/openlayers/tests/Format/OSM.html +0 -115
- data/misc/openlayers/tests/Format/OWSCommon/v1_0_0.html +0 -34
- data/misc/openlayers/tests/Format/OWSCommon/v1_1_0.html +0 -34
- data/misc/openlayers/tests/Format/OWSContext/v0_3_1.html +0 -278
- data/misc/openlayers/tests/Format/QueryStringFilter.html +0 -306
- data/misc/openlayers/tests/Format/SLD.html +0 -36
- data/misc/openlayers/tests/Format/SLD/v1_0_0.html +0 -1028
- data/misc/openlayers/tests/Format/SLD/v1_0_0_GeoServer.html +0 -228
- data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.html +0 -80
- data/misc/openlayers/tests/Format/SOSCapabilities/v1_0_0.js +0 -484
- data/misc/openlayers/tests/Format/SOSGetFeatureOfInterest.html +0 -80
- data/misc/openlayers/tests/Format/SOSGetObservation.html +0 -183
- data/misc/openlayers/tests/Format/Text.html +0 -49
- data/misc/openlayers/tests/Format/WCSCapabilities.html +0 -43
- data/misc/openlayers/tests/Format/WCSCapabilities/v1.html +0 -87
- data/misc/openlayers/tests/Format/WCSGetCoverage.html +0 -80
- data/misc/openlayers/tests/Format/WFS.html +0 -81
- data/misc/openlayers/tests/Format/WFSCapabilities.html +0 -43
- data/misc/openlayers/tests/Format/WFSCapabilities/v1.html +0 -179
- data/misc/openlayers/tests/Format/WFSDescribeFeatureType.html +0 -436
- data/misc/openlayers/tests/Format/WFST.html +0 -23
- data/misc/openlayers/tests/Format/WFST/v1.html +0 -455
- data/misc/openlayers/tests/Format/WFST/v1_0_0.html +0 -135
- data/misc/openlayers/tests/Format/WFST/v1_1_0.html +0 -236
- data/misc/openlayers/tests/Format/WKT.html +0 -297
- data/misc/openlayers/tests/Format/WMC.html +0 -315
- data/misc/openlayers/tests/Format/WMC/v1.html +0 -266
- data/misc/openlayers/tests/Format/WMC/v1_1_0.html +0 -86
- data/misc/openlayers/tests/Format/WMSCapabilities.html +0 -20
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1.html +0 -5209
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_1_1_WMSC.html +0 -348
- data/misc/openlayers/tests/Format/WMSCapabilities/v1_3_0.html +0 -614
- data/misc/openlayers/tests/Format/WMSDescribeLayer.html +0 -65
- data/misc/openlayers/tests/Format/WMSGetFeatureInfo.html +0 -319
- data/misc/openlayers/tests/Format/WMTSCapabilities.html +0 -20
- data/misc/openlayers/tests/Format/WMTSCapabilities/v1_0_0.html +0 -1042
- data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.html +0 -30
- data/misc/openlayers/tests/Format/WPSCapabilities/v1_0_0.js +0 -112
- data/misc/openlayers/tests/Format/WPSDescribeProcess.html +0 -206
- data/misc/openlayers/tests/Format/WPSExecute.html +0 -549
- data/misc/openlayers/tests/Format/XLS/v1_1_0.html +0 -98
- data/misc/openlayers/tests/Format/XML.html +0 -900
- data/misc/openlayers/tests/Format/XML/VersionedOGC.html +0 -51
- data/misc/openlayers/tests/Geometry.html +0 -356
- data/misc/openlayers/tests/Geometry/Collection.html +0 -431
- data/misc/openlayers/tests/Geometry/Curve.html +0 -157
- data/misc/openlayers/tests/Geometry/LineString.html +0 -443
- data/misc/openlayers/tests/Geometry/LinearRing.html +0 -362
- data/misc/openlayers/tests/Geometry/MultiLineString.html +0 -267
- data/misc/openlayers/tests/Geometry/MultiPoint.html +0 -130
- data/misc/openlayers/tests/Geometry/MultiPolygon.html +0 -34
- data/misc/openlayers/tests/Geometry/Point.html +0 -244
- data/misc/openlayers/tests/Geometry/Polygon.html +0 -420
- data/misc/openlayers/tests/Handler.html +0 -265
- data/misc/openlayers/tests/Handler/Box.html +0 -106
- data/misc/openlayers/tests/Handler/Click.html +0 -735
- data/misc/openlayers/tests/Handler/Drag.html +0 -603
- data/misc/openlayers/tests/Handler/Feature.html +0 -698
- data/misc/openlayers/tests/Handler/Hover.html +0 -136
- data/misc/openlayers/tests/Handler/Keyboard.html +0 -150
- data/misc/openlayers/tests/Handler/MouseWheel.html +0 -182
- data/misc/openlayers/tests/Handler/Path.html +0 -1464
- data/misc/openlayers/tests/Handler/Pinch.html +0 -285
- data/misc/openlayers/tests/Handler/Point.html +0 -600
- data/misc/openlayers/tests/Handler/Polygon.html +0 -1161
- data/misc/openlayers/tests/Handler/RegularPolygon.html +0 -235
- data/misc/openlayers/tests/Icon.html +0 -68
- data/misc/openlayers/tests/Kinetic.html +0 -132
- data/misc/openlayers/tests/Lang.html +0 -106
- data/misc/openlayers/tests/Layer.html +0 -910
- data/misc/openlayers/tests/Layer/ArcGIS93Rest.html +0 -324
- data/misc/openlayers/tests/Layer/ArcGISCache.html +0 -256
- data/misc/openlayers/tests/Layer/ArcGISCache.json +0 -334
- data/misc/openlayers/tests/Layer/ArcIMS.html +0 -123
- data/misc/openlayers/tests/Layer/Bing.html +0 -200
- data/misc/openlayers/tests/Layer/EventPane.html +0 -172
- data/misc/openlayers/tests/Layer/FixedZoomLevels.html +0 -137
- data/misc/openlayers/tests/Layer/GeoRSS.html +0 -210
- data/misc/openlayers/tests/Layer/Google.html +0 -369
- data/misc/openlayers/tests/Layer/Google/v3.html +0 -337
- data/misc/openlayers/tests/Layer/Grid.html +0 -1593
- data/misc/openlayers/tests/Layer/HTTPRequest.html +0 -229
- data/misc/openlayers/tests/Layer/Image.html +0 -164
- data/misc/openlayers/tests/Layer/KaMap.html +0 -287
- data/misc/openlayers/tests/Layer/MapGuide.html +0 -177
- data/misc/openlayers/tests/Layer/MapServer.html +0 -238
- data/misc/openlayers/tests/Layer/Markers.html +0 -156
- data/misc/openlayers/tests/Layer/OSM.html +0 -16
- data/misc/openlayers/tests/Layer/PointGrid.html +0 -232
- data/misc/openlayers/tests/Layer/PointTrack.html +0 -79
- data/misc/openlayers/tests/Layer/SphericalMercator.html +0 -126
- data/misc/openlayers/tests/Layer/TMS.html +0 -262
- data/misc/openlayers/tests/Layer/Text.html +0 -211
- data/misc/openlayers/tests/Layer/TileCache.html +0 -203
- data/misc/openlayers/tests/Layer/UTFGrid.html +0 -131
- data/misc/openlayers/tests/Layer/Vector.html +0 -879
- data/misc/openlayers/tests/Layer/Vector/RootContainer.html +0 -63
- data/misc/openlayers/tests/Layer/WMS.html +0 -583
- data/misc/openlayers/tests/Layer/WMTS.html +0 -1491
- data/misc/openlayers/tests/Layer/WrapDateLine.html +0 -188
- data/misc/openlayers/tests/Layer/XYZ.html +0 -266
- data/misc/openlayers/tests/Layer/atom-1.0.xml +0 -34
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile.txt +0 -3
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_2.txt +0 -3
- data/misc/openlayers/tests/Layer/data_Layer_Text_textfile_overflow.txt +0 -3
- data/misc/openlayers/tests/Layer/georss.txt +0 -378
- data/misc/openlayers/tests/Map.html +0 -2255
- data/misc/openlayers/tests/Marker.html +0 -163
- data/misc/openlayers/tests/Marker/Box.html +0 -183
- data/misc/openlayers/tests/OLLoader.js +0 -26
- data/misc/openlayers/tests/OpenLayers1.html +0 -18
- data/misc/openlayers/tests/OpenLayers2.html +0 -19
- data/misc/openlayers/tests/OpenLayers3.html +0 -19
- data/misc/openlayers/tests/OpenLayers4.html +0 -18
- data/misc/openlayers/tests/OpenLayersJsFiles.html +0 -27
- data/misc/openlayers/tests/Popup.html +0 -219
- data/misc/openlayers/tests/Popup/Anchored.html +0 -37
- data/misc/openlayers/tests/Popup/FramedCloud.html +0 -18
- data/misc/openlayers/tests/Projection.html +0 -87
- data/misc/openlayers/tests/Protocol.html +0 -63
- data/misc/openlayers/tests/Protocol/CSW.html +0 -90
- data/misc/openlayers/tests/Protocol/HTTP.html +0 -842
- data/misc/openlayers/tests/Protocol/SOS.html +0 -57
- data/misc/openlayers/tests/Protocol/Script.html +0 -282
- data/misc/openlayers/tests/Protocol/WFS.html +0 -471
- data/misc/openlayers/tests/README.txt +0 -16
- data/misc/openlayers/tests/Renderer.html +0 -96
- data/misc/openlayers/tests/Renderer/Canvas.html +0 -501
- data/misc/openlayers/tests/Renderer/Elements.html +0 -651
- data/misc/openlayers/tests/Renderer/SVG.html +0 -441
- data/misc/openlayers/tests/Renderer/VML.html +0 -454
- data/misc/openlayers/tests/Request.html +0 -524
- data/misc/openlayers/tests/Request/XMLHttpRequest.html +0 -59
- data/misc/openlayers/tests/Rule.html +0 -123
- data/misc/openlayers/tests/SingleFile1.html +0 -15
- data/misc/openlayers/tests/SingleFile2.html +0 -15
- data/misc/openlayers/tests/SingleFile3.html +0 -15
- data/misc/openlayers/tests/Strategy.html +0 -94
- data/misc/openlayers/tests/Strategy/BBOX.html +0 -361
- data/misc/openlayers/tests/Strategy/Cluster.html +0 -148
- data/misc/openlayers/tests/Strategy/Filter.html +0 -135
- data/misc/openlayers/tests/Strategy/Fixed.html +0 -253
- data/misc/openlayers/tests/Strategy/Paging.html +0 -113
- data/misc/openlayers/tests/Strategy/Refresh.html +0 -177
- data/misc/openlayers/tests/Strategy/Save.html +0 -127
- data/misc/openlayers/tests/Style.html +0 -426
- data/misc/openlayers/tests/Style2.html +0 -56
- data/misc/openlayers/tests/StyleMap.html +0 -44
- data/misc/openlayers/tests/Symbolizer.html +0 -31
- data/misc/openlayers/tests/Symbolizer/Line.html +0 -42
- data/misc/openlayers/tests/Symbolizer/Point.html +0 -52
- data/misc/openlayers/tests/Symbolizer/Polygon.html +0 -44
- data/misc/openlayers/tests/Symbolizer/Raster.html +0 -32
- data/misc/openlayers/tests/Symbolizer/Text.html +0 -42
- data/misc/openlayers/tests/Test.AnotherWay.baseadditions.js +0 -191
- data/misc/openlayers/tests/Test.AnotherWay.css +0 -243
- data/misc/openlayers/tests/Test.AnotherWay.geom_eq.js +0 -139
- data/misc/openlayers/tests/Test.AnotherWay.js +0 -2498
- data/misc/openlayers/tests/Test.AnotherWay.xml_eq.js +0 -311
- data/misc/openlayers/tests/Tile.html +0 -130
- data/misc/openlayers/tests/Tile/Image.html +0 -490
- data/misc/openlayers/tests/Tile/Image/IFrame.html +0 -183
- data/misc/openlayers/tests/Tile/UTFGrid.html +0 -306
- data/misc/openlayers/tests/TileManager.html +0 -137
- data/misc/openlayers/tests/Tween.html +0 -116
- data/misc/openlayers/tests/Util.html +0 -1180
- data/misc/openlayers/tests/Util/vendorPrefix.html +0 -117
- data/misc/openlayers/tests/Util_common.js +0 -64
- data/misc/openlayers/tests/Util_w3c.html +0 -35
- data/misc/openlayers/tests/WPSClient.html +0 -108
- data/misc/openlayers/tests/WPSProcess.html +0 -188
- data/misc/openlayers/tests/atom-1.0.xml +0 -34
- data/misc/openlayers/tests/auto-tests.html +0 -2447
- data/misc/openlayers/tests/data/geos_wkt_intersects.js +0 -495
- data/misc/openlayers/tests/data/osm.js +0 -14
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/0/2.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/1/2.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/bio_utfgrid/1/2/2.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/demo-1.1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/0/2.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/1/2.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/0.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/1.json +0 -1
- data/misc/openlayers/tests/data/utfgrid/world_utfgrid/1/2/2.json +0 -1
- data/misc/openlayers/tests/data_Layer_Text_textfile.txt +0 -3
- data/misc/openlayers/tests/data_Layer_Text_textfile_2.txt +0 -3
- data/misc/openlayers/tests/data_Layer_Text_textfile_overflow.txt +0 -3
- data/misc/openlayers/tests/deprecated/Ajax.html +0 -28
- data/misc/openlayers/tests/deprecated/BaseTypes/Class.html +0 -142
- data/misc/openlayers/tests/deprecated/BaseTypes/Element.html +0 -56
- data/misc/openlayers/tests/deprecated/Control/MouseToolbar.html +0 -60
- data/misc/openlayers/tests/deprecated/Geometry/Rectangle.html +0 -77
- data/misc/openlayers/tests/deprecated/Layer/GML.html +0 -61
- data/misc/openlayers/tests/deprecated/Layer/MapServer.html +0 -59
- data/misc/openlayers/tests/deprecated/Layer/MapServer/Untiled.html +0 -158
- data/misc/openlayers/tests/deprecated/Layer/WFS.html +0 -178
- data/misc/openlayers/tests/deprecated/Layer/WMS.html +0 -60
- data/misc/openlayers/tests/deprecated/Layer/WMS/Post.html +0 -89
- data/misc/openlayers/tests/deprecated/Layer/Yahoo.html +0 -121
- data/misc/openlayers/tests/deprecated/Layer/mice.xml +0 -156
- data/misc/openlayers/tests/deprecated/Layer/owls.xml +0 -156
- data/misc/openlayers/tests/deprecated/Popup/AnchoredBubble.html +0 -61
- data/misc/openlayers/tests/deprecated/Protocol/SQL.html +0 -24
- data/misc/openlayers/tests/deprecated/Protocol/SQL/Gears.html +0 -474
- data/misc/openlayers/tests/deprecated/Renderer/SVG2.html +0 -399
- data/misc/openlayers/tests/deprecated/Tile/WFS.html +0 -215
- data/misc/openlayers/tests/deprecated/Util.html +0 -20
- data/misc/openlayers/tests/georss.txt +0 -378
- data/misc/openlayers/tests/grid_inittiles.html +0 -30
- data/misc/openlayers/tests/index.html +0 -6
- data/misc/openlayers/tests/list-tests.html +0 -260
- data/misc/openlayers/tests/manual/ajax.html +0 -49
- data/misc/openlayers/tests/manual/ajax.txt +0 -1
- data/misc/openlayers/tests/manual/alloverlays-mixed.html +0 -55
- data/misc/openlayers/tests/manual/arcims-2117.html +0 -103
- data/misc/openlayers/tests/manual/arkansas.rss +0 -9
- data/misc/openlayers/tests/manual/big-georss.html +0 -33
- data/misc/openlayers/tests/manual/box-quirks.html +0 -52
- data/misc/openlayers/tests/manual/box-strict.html +0 -46
- data/misc/openlayers/tests/manual/clip-features-svg.html +0 -128
- data/misc/openlayers/tests/manual/dateline-sketch.html +0 -66
- data/misc/openlayers/tests/manual/dateline-smallextent.html +0 -61
- data/misc/openlayers/tests/manual/draw-feature.html +0 -73
- data/misc/openlayers/tests/manual/feature-handler.html +0 -126
- data/misc/openlayers/tests/manual/geodesic.html +0 -160
- data/misc/openlayers/tests/manual/geojson-geomcoll-reprojection.html +0 -74
- data/misc/openlayers/tests/manual/google-fullscreen-overlay.html +0 -54
- data/misc/openlayers/tests/manual/google-panning.html +0 -122
- data/misc/openlayers/tests/manual/google-resize.html +0 -55
- data/misc/openlayers/tests/manual/google-tilt.html +0 -37
- data/misc/openlayers/tests/manual/google-v3-resize.html +0 -54
- data/misc/openlayers/tests/manual/loadend.html +0 -73
- data/misc/openlayers/tests/manual/map-events.html +0 -38
- data/misc/openlayers/tests/manual/memory/Marker-2258.html +0 -60
- data/misc/openlayers/tests/manual/memory/PanZoom-2323.html +0 -41
- data/misc/openlayers/tests/manual/memory/RemoveChild-2170.html +0 -56
- data/misc/openlayers/tests/manual/memory/VML-2170.html +0 -49
- data/misc/openlayers/tests/manual/multiple-google-layers.html +0 -135
- data/misc/openlayers/tests/manual/overviewmap-projection.html +0 -70
- data/misc/openlayers/tests/manual/page-position.html +0 -103
- data/misc/openlayers/tests/manual/pan-redraw-svg.html +0 -58
- data/misc/openlayers/tests/manual/popup-keepInMap.html +0 -100
- data/misc/openlayers/tests/manual/reflow.html +0 -59
- data/misc/openlayers/tests/manual/renderedDimensions.html +0 -113
- data/misc/openlayers/tests/manual/select-feature-right-click.html +0 -86
- data/misc/openlayers/tests/manual/select-feature.html +0 -75
- data/misc/openlayers/tests/manual/tiles-loading.html +0 -122
- data/misc/openlayers/tests/manual/tween.html +0 -82
- data/misc/openlayers/tests/manual/vector-features-performance.html +0 -149
- data/misc/openlayers/tests/manual/vector-layer-zindex.html +0 -143
- data/misc/openlayers/tests/mice.xml +0 -156
- data/misc/openlayers/tests/node.js/mockdom.js +0 -104
- data/misc/openlayers/tests/node.js/node-tests.cfg +0 -12
- data/misc/openlayers/tests/node.js/node.js +0 -1
- data/misc/openlayers/tests/node.js/run-test.js +0 -26
- data/misc/openlayers/tests/node.js/run.sh +0 -10
- data/misc/openlayers/tests/owls.xml +0 -156
- data/misc/openlayers/tests/run-tests.html +0 -155
- data/misc/openlayers/tests/selenium/remotecontrol/config.cfg +0 -48
- data/misc/openlayers/tests/selenium/remotecontrol/selenium.py +0 -1846
- data/misc/openlayers/tests/selenium/remotecontrol/setup.txt +0 -8
- data/misc/openlayers/tests/selenium/remotecontrol/test_ol.py +0 -95
- data/misc/openlayers/tests/speed/geometry.html +0 -43
- data/misc/openlayers/tests/speed/string_format.html +0 -29
- data/misc/openlayers/tests/speed/vector-renderers.html +0 -25
- data/misc/openlayers/tests/speed/vector-renderers.js +0 -70
- data/misc/openlayers/tests/speed/wmc_speed.html +0 -30
- data/misc/openlayers/tests/speed/wmscaps.html +0 -52
- data/misc/openlayers/tests/speed/wmscaps.js +0 -4956
- data/misc/openlayers/tests/speed/wmscaps.xml +0 -4954
- data/misc/openlayers/tests/throws.js +0 -82
- data/misc/openlayers/theme/default/google.css +0 -9
- data/misc/openlayers/theme/default/google.tidy.css +0 -1
- data/misc/openlayers/theme/default/ie6-style.css +0 -10
- data/misc/openlayers/theme/default/ie6-style.tidy.css +0 -1
- data/misc/openlayers/theme/default/img/add_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/add_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/blank.gif +0 -0
- data/misc/openlayers/theme/default/img/close.gif +0 -0
- data/misc/openlayers/theme/default/img/drag-rectangle-off.png +0 -0
- data/misc/openlayers/theme/default/img/drag-rectangle-on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_line_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_line_on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/draw_polygon_off.png +0 -0
- data/misc/openlayers/theme/default/img/draw_polygon_on.png +0 -0
- data/misc/openlayers/theme/default/img/editing_tool_bar.png +0 -0
- data/misc/openlayers/theme/default/img/move_feature_off.png +0 -0
- data/misc/openlayers/theme/default/img/move_feature_on.png +0 -0
- data/misc/openlayers/theme/default/img/navigation_history.png +0 -0
- data/misc/openlayers/theme/default/img/overview_replacement.gif +0 -0
- data/misc/openlayers/theme/default/img/pan-panel-NOALPHA.png +0 -0
- data/misc/openlayers/theme/default/img/pan-panel.png +0 -0
- data/misc/openlayers/theme/default/img/pan_off.png +0 -0
- data/misc/openlayers/theme/default/img/pan_on.png +0 -0
- data/misc/openlayers/theme/default/img/panning-hand-off.png +0 -0
- data/misc/openlayers/theme/default/img/panning-hand-on.png +0 -0
- data/misc/openlayers/theme/default/img/remove_point_off.png +0 -0
- data/misc/openlayers/theme/default/img/remove_point_on.png +0 -0
- data/misc/openlayers/theme/default/img/ruler.png +0 -0
- data/misc/openlayers/theme/default/img/save_features_off.png +0 -0
- data/misc/openlayers/theme/default/img/save_features_on.png +0 -0
- data/misc/openlayers/theme/default/img/view_next_off.png +0 -0
- data/misc/openlayers/theme/default/img/view_next_on.png +0 -0
- data/misc/openlayers/theme/default/img/view_previous_off.png +0 -0
- data/misc/openlayers/theme/default/img/view_previous_on.png +0 -0
- data/misc/openlayers/theme/default/img/zoom-panel-NOALPHA.png +0 -0
- data/misc/openlayers/theme/default/img/zoom-panel.png +0 -0
- data/misc/openlayers/theme/default/style.css +0 -516
- data/misc/openlayers/theme/default/style.mobile.css +0 -70
- data/misc/openlayers/theme/default/style.mobile.tidy.css +0 -1
- data/misc/openlayers/theme/default/style.tidy.css +0 -1
- data/misc/openlayers/tools/BeautifulSoup.py +0 -1767
- data/misc/openlayers/tools/README.txt +0 -14
- data/misc/openlayers/tools/closure_library_jscompiler.py +0 -71
- data/misc/openlayers/tools/closure_ws.py +0 -28
- data/misc/openlayers/tools/exampleparser.py +0 -251
- data/misc/openlayers/tools/jsmin.c +0 -272
- data/misc/openlayers/tools/jsmin.py +0 -216
- data/misc/openlayers/tools/mergejs.py +0 -287
- data/misc/openlayers/tools/minimize.py +0 -47
- data/misc/openlayers/tools/oldot.py +0 -43
- data/misc/openlayers/tools/release.sh +0 -71
- data/misc/openlayers/tools/shrinksafe.py +0 -54
- data/misc/openlayers/tools/toposort.py +0 -35
- data/misc/openlayers/tools/uglify_js.py +0 -35
- 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\"> </span> ";
|
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 = " ";
|
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
|
-
};
|