Commit Graph

727 Commits

Author SHA1 Message Date
Tom
f510301922 add performance test demo page. reduce number of drawing calls drawing pipeline of webgl drawer. 2023-07-19 18:18:56 -04:00
Andrew Armbruster
be4d5ad7f7 Update grunt-contrib-qunit and extend FullScreen test
Update the package responsible for running tests, grunt-contrib-qunit.

The package change includes a significant bump to the puppeteer version used to run the tests (from v9 -> v19: https://github.com/gruntjs/grunt-contrib-qunit#release-history).

Running the tests with the newer puppeteer version leads to issues running the FullScreen test when run in the 'old'/current default headless mode (the test fails with a timeout).

Updating to the 'new' headless mode (eventually to be the default anyway), seems to allow the fullscreen request to succeed.

Thus, go ahead and extend the FullScreen test to verify the correct values for a successful request, as well as an additional step to exit fullscreen mode.
2023-07-16 13:10:56 +02:00
Tom
6feed0a68e Add clipping to demo. Update documentation and remove commented code. Change from get type to getType(). 2023-07-09 12:05:17 -04:00
Tom
048b43e196 remove forced transparency from images in drawercomparison demo. change from context2d naming to canvas. 2023-06-30 16:06:17 -04:00
Tom
cc412f0a20 add documentation; remove unnecessary deprecated code 2023-06-29 21:55:59 -04:00
Tom
3a5a738508 remove viewer.destroy() from some tests 2023-06-29 17:06:45 -04:00
Tom
83ec2bb1f0 tiled image opacity works now with no overlapping regions at tile borders 2023-06-29 16:41:45 -04:00
Tom
24c4d2d2bc Remove tile-drawn event and replace with tiled-image-drawn for webgl drawer, and update related tests. 2023-06-27 13:57:02 -04:00
Tom
2ec2c0f2c7 remove three.js and associated plugin renderer; fix demo 2023-06-26 21:44:03 -04:00
Tom
386ca85db8 implement native webgl renderer, and many associated changes related to drawing pipeline and testing 2023-06-26 21:29:08 -04:00
Tom
37b8ef9519 deprecate useCanvas option; add option for drawer and drawerOptions 2023-06-18 19:08:33 -04:00
Tom
2e248baf91 additional fixes to get tests to pass 2023-06-08 12:10:55 -07:00
Tom
354590a17a convert DrawerBase and drawer implementations to classes; add html drawer to the demo page 2023-06-07 12:42:16 -07:00
Tom
8fda8ceae7 re-enable sequence mode demo viewer 2023-06-07 10:16:21 -04:00
Tom
8fe6a5f6e6 merging remote 2023-06-07 10:14:58 -04:00
Tom
1bc93be3f2 update tile drawing logic 2023-06-06 19:37:24 -04:00
Tom
36084703f0 conditional usage of draw() vs event handlers depending on initialization context 2023-06-06 18:08:53 -04:00
Tom
2a0af48bc1 updates to threejsdrawer, bugxfixes/improvements 2023-06-06 18:08:30 -04:00
Tom
dab8a9a3cd move tile update logic back to TiledImage to keep drawing logic cleaner 2023-06-06 18:08:30 -04:00
Tom
2f3bef0865 split canvas from html rendering 2023-06-06 18:08:30 -04:00
Tom
467597e2c2 cleaning up drawer APIs 2023-06-06 18:08:30 -04:00
Tom
5eece7d73a fix cropping when viewer is rotated 2023-06-06 18:08:30 -04:00
Tom
69c4ccf33e revert debugging changes in overlay demo 2023-06-06 18:08:30 -04:00
Tom
5328761877 finished many implementation details and demo 2023-06-06 18:08:01 -04:00
Tom
f9ab63944b ThreeJSRenderer nearly complete, starting refactor of core to support plugin drawers. 2023-06-06 18:05:17 -04:00
Andrew Armbruster
c7df7be7f1 Catch rejected Promise on failed fullscreen request
Add a `catch()` rejection of request for fullscreen (standard Fullscreen API implementation), as well as fullscreen exit. For now there is no actual handling, but we send a message to the internal error channel.

Motivation: The fullscreen request was causing certain tests to fail when run with newer versions of QUnit (starting in 2.5.0), which now fails tests that have unhandled Promise rejections (as we did here).

The exit case is not currently covered by tests, but works the same way (also returns a promise).

See: https://fullscreen.spec.whatwg.org/#ref-for-dom-element-requestfullscreen%E2%91%A0
2023-05-28 14:15:55 +02:00
Andrew A
ad1179b9db Update to most recent QUnit
Update to most recent version of QUnit, which has been published under a new name for a while now.

Accordingly, replace the old package with the new one in both dependencies, as well as update references in test HTML files.
2023-05-27 13:16:28 +02:00
lcl45
7fb5744495 Resolved suggestions
- Avoid useless parameters _navigatorRotate since it already exists within the navigator;
- Automatically rotate the image in the demo page.
2023-05-24 08:45:15 +02:00
oro.niccolo
d897e5454f Added navigator's region rotation
When the "navigatorRotate" option is set to false, rotate the navigator's region accordigly to the image rotation.
2023-05-23 09:27:32 +02:00
Uwe Schmidt
6fd828974d Update navigator ajax headers 2023-05-12 21:46:16 +02:00
Uwe Schmidt
e51aa4a9c5 Refine setAjaxHeaders
- Allow null to clear headers (same as empty object)
- Add TiledImage._updateAjaxHeaders
- Add error message in case of invalid headers
2023-05-05 01:13:44 +02:00
Uwe Schmidt
182c11481e Add tests for setAjaxHeaders 2023-05-05 00:03:22 +02:00
Ian Gilman
b1274515aa Tiny basic.html tweak 2023-04-27 14:27:40 -07:00
Craig A. Berry
bff93af17e Handle XML embedded in tilesource JSON
The existing check for whether the tilesource data is XML or JSON
looks for a tag anywhere in the response content, which incorrectly
flags the content as XML in the case where it is really JSON with
XML embedded in it.

This commit corrects that problem by requiring the tag to occur as
the first non-whitespace part of the content. This is basically a
poor person's well-formedness check since well-formed XML cannot
have non-whitespace content outside of the root node.

N.B. While malformed XML content with non-whitespace characters
before the first element has been getting identified as XML, it
has not been getting parsed correctly.  With current parsing
infrastructure, the content has been getting replaced by a parsing
error message.  With more up-to-date parsing infrastructure, it
will throw an error.  Either way we're not losing anything by failing
to identify malformed XML as XML.

Addresses issue #2325.
2023-03-30 16:38:35 -05:00
Tom
8a4c95ef4b conditional usage of draw() vs event handlers depending on initialization context 2023-03-13 21:39:54 -04:00
Tom
6d1895364f updates to threejsdrawer, bugxfixes/improvements 2023-03-13 17:43:35 -04:00
Tom
ade59513df move tile update logic back to TiledImage to keep drawing logic cleaner 2023-03-13 15:56:04 -04:00
Tom
641951aaed split canvas from html rendering 2023-03-12 11:42:03 -04:00
Tom
6159ca7c7c cleaning up drawer APIs 2023-03-11 11:38:21 -05:00
Tom
a6e621b562 fix cropping when viewer is rotated 2023-03-06 14:29:39 -05:00
Tom
7c81d068e6 revert debugging changes in overlay demo 2023-03-05 16:12:30 -05:00
Tom
d1b8001adc finished many implementation details and demo 2023-03-05 16:08:32 -05:00
Tom
376ee38d3c ThreeJSRenderer nearly complete, starting refactor of core to support plugin drawers. 2023-02-21 18:59:40 -05:00
Aiosa
de00939d8d Revert async support and event breaking support in EventSource. 2023-01-21 09:00:24 +01:00
Aiosa
c8dbb2c757 Implement support for async function and promise type recognition with $.type. Add $.Promise proxy. Implement support for promises in EventSource. Implement ability to abort events as well as prioritize events. 2023-01-17 11:13:48 +01:00
Ian Gilman
1351ac018a
Merge pull request #2256 from pearcetm/resize-listener
work in progress about viewer resize behavior
2022-12-16 13:48:45 -08:00
Ian Gilman
3342b7880d
Merge pull request #2249 from pearcetm/rotated-constraints-fix
fixed viewport constraint behavior when viewer is rotated
2022-12-15 13:57:44 -08:00
Tom
564121428c removed polling vs resizeviewer option from demo 2022-12-14 11:31:12 -05:00
Tom
9daa8feec1 cleaning up changes; modified demo 2022-12-14 09:21:52 -05:00
Tom
9048abb05e Merge branch 'master' into resize-listener 2022-12-13 18:31:42 -05:00
Tom
69297c0181 Updated resize behavior 2022-12-13 16:49:23 -05:00
Ian Gilman
ae70c88e52
Merge pull request #2259 from openseadragon/ig-test
Fixed fullyLoaded test when run in browser
2022-12-12 15:26:44 -08:00
Ian Gilman
e6341ac1e0 Fixed fullyLoaded test when run in browser 2022-12-12 15:21:56 -08:00
Tom
e122f372ba enable all tests 2022-12-11 15:07:43 -05:00
Tom
48bcd75f1a fixed logic of dragNavigatorBackToCenter method 2022-12-11 14:47:52 -05:00
Tom
37a024f023 bugfix in getCenter during zoom animation 2022-12-10 07:02:16 -05:00
Tom
86c105beaa bugfix in getCenter during zoom animation 2022-12-10 06:57:53 -05:00
Tom
54af53cf4e work in progress about viewer resize behavior 2022-12-07 17:46:25 -05:00
Tom
524b42c778 demo update 2022-12-06 17:21:03 -05:00
Tom
757bf8690e fix Viewport._fixBounds to work with boundary constraints, and updated the demo page to show the behavior. 2022-12-06 16:42:13 -05:00
Tom
05997d359c reverted Viewport.setRotation, created Viewport.setRotationWithPivot 2022-12-05 19:38:46 -05:00
Tom
78c6295acf update unit tests 2022-12-02 22:08:15 -05:00
Ian Gilman
dfcfa4c02b Temporarily disabling navigator tests 2022-12-02 16:27:43 -08:00
Ian Gilman
77030096e4 Fixing test failures 2022-12-02 15:52:53 -08:00
John Reagan
8ef5270d7f #1970: Update unit test to check for changed url behavior 2022-12-02 10:32:11 -05:00
John Reagan
601160e9fb Add support for dynamic urls from tile source. Fixes #1970 2022-11-30 15:38:57 -05:00
Ian Gilman
d3ef767487
Merge pull request #2136 from jonasengelmann/master
Viewport rotation animation
2022-08-23 14:13:22 -07:00
jonasengelmann
5f50d9e59e reworked setRotation to allow all degree values 2022-08-22 15:34:29 +02:00
jonasengelmann
3cdd94e465 constrained rotation to shortest path 2022-06-29 19:47:26 +02:00
Aiosa
bb1755613e Merge branch 'master' of https://github.com/openseadragon/openseadragon into openseadragon-master
# Conflicts:
#	src/tiledimage.js
2022-06-28 14:11:02 +02:00
Jirka
8a2c998cb9 Finish on image job now accepts request argument. Further comments cleanup. Deprecation message for image property in tile loaded event. Removal of downloadTileFinish(). More robust aborting that cleans up an image properties when aborted (not done until now). 2022-05-04 15:16:13 +02:00
Jirka
d82fd35323 Fix comments on #2148: part 2. Better commens on the new TileSource API. Deprecation if 'tile-loaded' image event parameter. Unwrap ImageJob and add userData property. 2022-04-29 23:45:01 +02:00
Jirka
4f79f29238 Move cache creation, image downloading process and transparency deduction to the TileSource instance to allow custom data fetching, caching, processing. 2022-04-16 21:19:54 +02:00
Jirka
ec430779f4 Move open-failed error message to the handler, adjust test for the new message style. Add 'numberOfHandlers()' method for events. 2022-04-15 10:32:08 +02:00
jonasengelmann
eca51850e2 Merge branch 'master' of https://github.com/openseadragon/openseadragon 2022-04-01 11:14:55 +02:00
jonasengelmann
fb8bafc6a0 updated tests 2022-03-30 23:05:14 +02:00
Jirka
7f784835a7 Revert 'spacing change' for licence disclaimer (TiledImage), fix tests on drag-end event no longer firing when mouse does not move (PR #2064) 2022-03-25 12:30:18 +01:00
Jirka
aa0119be45 Rewrite TiledImage closure functions to be private class members. Fix tests that expect error message to appear in 'log' instead of 'error'. 2022-03-23 14:05:58 +01:00
Ronny Mikalsen
01a9e3b168 fix: change tileSources in demo for iiif
Tile sources on wellcomelibrary.org is no longer available
2022-03-14 14:12:21 +01:00
Jirka
aacae1ca3f Reverted .json configuration changes made by npm. Added tests for PUSH functionality, new flag 'allowPost' to explicitly enable POST data, remove (-1) in the URL splitting. 2022-01-12 22:31:13 +01:00
Jachimike Onuoha
0a06c5b6a4 Updated boolean logic for preventVerticalPan and preventHorizontalPan 2021-12-06 23:33:58 -05:00
Jachimike Onuoha
5b8a22e848
Merge branch 'openseadragon:master' into JachiOnuoha-ArrowKeysBug 2021-12-02 16:56:18 -05:00
Jachimike Onuoha
1fde705785 Fixed Arrowkey panning bug 2021-12-02 14:45:55 -05:00
Sanghoon Kim
3bde256d62 Modify the unit test for changing maxLevel 2021-12-01 10:17:10 +09:00
Jachimike Onuoha
2edf48e880 Temporary fix for arrow key panVertical bug 2021-11-30 17:43:11 -05:00
Jachimike Onuoha
0f1de455e2 Recreated panHorizontal & panVertical bug 2021-11-29 16:40:26 -05:00
Sanghoon Kim
63a4f87716 Fix getLevelScale to use image dimensions 2021-11-09 21:56:01 +09:00
superbland
57e97019d9 Update tests 2021-11-04 19:35:57 +00:00
superbland
45bdd87224 Tests for getRelativeSize 2021-10-09 16:30:13 +01:00
Hernán Cervera
b0fb8e836d Add tests for OpenSeadragon.getViewer 2021-07-02 12:25:02 -05:00
Mark Salsbery
a53550ea0e Removed test for move-leave (fly-over, no enter event) 2021-05-03 13:57:14 -07:00
Alistair Buxton
eebfdc1391 Improve the flipping example
Adds tiled images to the viewer at creation so that they are properly
centred.

This also checks the current state of the test checkboxes on loading.
Some browsers, notably Firefox, will remember the value of checkboxes
across reloads. This can lead to the checkboxes being out of sync with
with viewer after a reload.

An alternative is to set autocomplete="off" on each checkbox element.
This will force the browser to reset the field to the default specified
in the HTML. However I think checking the actual value is preferable
as it means the defaults are only specified in one place.
2021-03-23 03:22:13 +00:00
Alistair Buxton
7552806a47 Force reload tiles when the tile's flip doesn't match the image
Flipping an image changes the bounds of each tile. The existing
code assumes that cannot happen. getTile() calculates the tile
bounds the first time it is asked for a particular tile. It then
caches and returns the same time on every subsequent call.

getTile() has a check to test if a tile exists in the cache. If
it does not, the tile is created and inserted. In order to make
tiles be rebuilt after a flip, we only need to check if the tile's
flip matches the image's flip. If not, we can recreate the tile
as if it did not exist.

To make this a bit clearer, the tile's flipped flag is now set
in getTile() rather than positionTile().

This makes setFlip() work.
2021-03-22 06:45:26 +00:00
Alistair Buxton
3161808a9d Add a basic setFlip method to TiledImage
This doesn't fully work - even raising a bounds-change doesn't seem
to be enough.
2021-03-19 17:16:25 +00:00
Alistair Buxton
53052c8c08 Add flipping example
This isn't complete - the flip toggles do not work as setFlip() is
not implemented. The second image is currently always flipped.
2021-03-19 15:45:21 +00:00
Mark Salsbery
a0ff35a153 more code cleanup 2021-03-17 16:18:49 -07:00
Mark Salsbery
baeb70fdcc code cleanup 2021-03-17 16:15:22 -07:00
Mark Salsbery
b0447979f3 Fixed test "Events: Viewer: preventDefaultAction in dblClickHandler". Fixes #1372 2021-03-17 15:15:36 -07:00
Mark Salsbery
d6cec05dee Removed code formatting changes to reduce noise in PR 2021-03-11 21:04:42 -08:00
Mark Salsbery
57a98c5ec2 Fixed preventDefaultAction functionality tests, removed unused preventDefaultAction instances from MouseTracker 2021-03-11 20:30:50 -08:00
Mark Salsbery
bf0b7842ca Sane pointer coords for navigator tests drag simulations 2021-03-09 11:22:34 -08:00
Mark Salsbery
5eea11e2a5 Fixed simulated drag events in navigator tests 2021-03-08 15:42:12 -08:00
Mark Salsbery
6fa083d2e0 Remove support for IE < 11 (#1863) 2021-03-08 13:33:05 -08:00
Mark Salsbery
459fcb9a4e Merge branch 'master' into ms-mousetracker
* master:
  Changleg for #1878
  Separate properties for buttonGroup and customButtons
  Better handle destruction when navigator in custom location

# Conflicts:
#	src/viewer.js
2021-03-08 09:42:32 -08:00
Steve Halasz
0ede8992de Separate properties for buttonGroup and customButtons
This makes it more clear what we're testing for or calling methods on, vs. assigning to this.buttons in both the
useGroup true and false cases.
2020-12-18 13:25:29 -05:00
Mark Salsbery
3769af532b Fixed tests to account for #1459 fix (fire drag-end event even if pointer didn't move) 2020-08-13 19:56:22 -07:00
Mark Salsbery
2d4a723854 MouseTracker enhancements, improved IE <=10 support 2020-07-25 18:30:06 -07:00
Mark Salsbery
d2bb480363 Browser sniffing and pointer events fixes and enhancements 2020-07-24 20:05:39 -07:00
Takuma Kira
344ddb924f - Undo removing prefixUrl option in memorycheck-with-simple-image demo.
- Define destroy method in TileSource class, call ImageTileSource.freeupCanvasMemory method as optional from TileSource.destroy method and remove TODO.
2020-03-23 11:29:07 +09:00
Takuma Kira
6cb57aa66c - Make ImageTileSource.freeupCanvasMemory method private and call it from ImageTileSource.destroy for consistency.
- Add comment to memorycheck-with-simple-image demo how to reproduce the problem.
- Simplify memorycheck-with-simple-image demo.
2020-03-19 12:02:50 +09:00
Takuma Kira
abc11e3eb6 - Add memorycheck-with-simple-image demo to reproduce "Total canvas memory use exceeds the maximum limit" warning and then "null is not an object (evaluating 'smallContext.drawImage')" error.
(To get them, click Create button 12 times on "iPad Air (3rd generation) -- 13.3" Simulator on Mac with Web Inspector by Safari.)
2020-03-18 14:36:56 +09:00
zero41120
a885c33433 1540 Remove support for array in the demo UI 2020-02-10 16:19:36 -08:00
Yansong Hong
956c830f3e 1540 Add point support on the demo page 2020-02-07 16:04:16 -08:00
zero41120
94183f7f18 1540 Change innerHTML to value to sync user input 2020-02-06 13:50:15 -08:00
zero41120
2d971af445 1540 Add feature to crop tiledImage with multiple polygons 2020-02-06 13:46:14 -08:00
Lutz Helm
996cf610c3 Add iiif.js tests to coverage.html 2020-01-15 09:50:31 +01:00
Lutz Helm
d5d0b4ce6e Add tests for IIIF, fix error in OpenSedragonIIIFTileSource.canBeTiled 2020-01-07 16:10:14 +01:00
Lutz Helm
e851620df4 Add some unit tests for the handling of different IIIF versions 2020-01-06 13:42:32 +01:00
Ian Gilman
3fa1068275 Making it possible to manually set the width and height of the navigator 2019-07-26 11:34:33 -07:00
David McAlpine
ab33cd502e only run shadow dom test if brower supports shadow dom 2019-07-19 16:29:19 -04:00
David McAlpine
daa387f4b7 allow reference strip to work in a web component 2019-07-18 21:14:49 -04:00
David McAlpine
998439f29c Upgraded grunt-contrib-qunit to ^3.1.0 which utilizes pupetter instead of phantomjs 2019-07-17 20:02:40 -04:00
Mark Allen Matney, Jr
42060a49b5 Added HTML tests for ImageJob timeout 2018-09-10 00:58:24 -07:00
Fabien Rohman
b055f6fe54 Fix issue #1504 2018-08-10 10:23:33 +02:00
Ian Gilman
e01e36794d
Merge pull request #1441 from nelsonn3c/feature/flip
Adds flip/mirror slides feature.
2018-06-07 09:48:59 -07:00
Nelson Campos
0023ae9801 Put flip tests out from the original tests in their own test cases 2018-06-07 11:41:45 +01:00
Nelson Campos
6a2cd1ff84 Adds some more tests 2018-06-06 17:56:37 +01:00
Nelson Campos
3615ad412f Adds some more tests and tries to solve some code bugs.
A new variance parameter was added to assertPointsEquals function.

Variance value was set on loopingTestHelper function (1e-15).

The following tests were modified to execute tests on flipped viewport:
* 'panBy'
* 'panTo'
* 'zoomBy with ref point'
2018-06-06 17:03:40 +01:00
Nelson Campos
a31587df2f Adds tests about flip methods 2018-04-17 16:23:21 +01:00
Ian Gilman
b63c77fdb9
Merge pull request #1370 from avandecreme/tile_at_point
Fix getTileAtPoint epsilon precision
2018-04-16 09:44:25 -07:00
Zsolt Ero
59f15508b9 removed old files from test 2018-02-16 21:17:52 +01:00
Zsolt Ero
d44e907910 added tests for scaleFactors [1] 2018-02-16 21:14:28 +01:00
nein09
3a0e01479f Call equalsWithVariance correctly 2018-01-19 14:39:17 -08:00
nein09
c53bd18290 Revert timeout changes 2018-01-18 10:45:56 -08:00
nein09
ac013513a2 Comment out failing tests (opened a bug) 2018-01-04 08:35:40 -08:00
nein09
aaec7c9526 Implement code coverage without grunt-qunit-istanbul 2018-01-02 08:32:45 -08:00
nein09
80e8065e2f More work on navigator tests 2018-01-02 08:32:45 -08:00
nein09
b8a28ce838 Navigator tests 2018-01-02 08:32:45 -08:00
nein09
6f789e7e88 Everything but the navigator tests 2018-01-02 08:32:45 -08:00
nein09
b096e369d0 Controls and viewport 2018-01-02 08:32:45 -08:00
nein09
52a275808f Multi-image and overlays tests 2018-01-02 08:32:45 -08:00
nein09
76669f8a65 Update units 2018-01-02 08:32:45 -08:00
nein09
9f39f7bf03 Convert events tests 2018-01-02 08:32:45 -08:00
nein09
b4b1ec8825 Make timeWatcher args make more sense, add utils tests 2018-01-02 08:32:45 -08:00
nein09
73be93b995 Formats tests 2018-01-02 08:32:45 -08:00
nein09
c29715cbe8 Update QUnit syntax in strings tests 2018-01-02 08:32:45 -08:00
nein09
2af7db43a4 Update test helpers, basic tests, and polyfill tests 2018-01-02 08:32:45 -08:00
nein09
bfb00656cc Fix up QUnit syntax for ajax-tiles 2018-01-02 08:32:45 -08:00
Antoine Vandecreme
517e1feae8 Fix getTileAtPoint epsilon precision
Fix #1362
2017-12-24 10:57:57 +01:00
Oeystein Lygre
d1ea179296 manage preventDefaultAction flag in canvas-double-click viewer event
Trigger the canvas-double-click event before default double tap to zoom happens on the viewer
2017-08-22 23:11:12 +02:00