diff --git a/test/modules/navigator.js b/test/modules/navigator.js
index af658fac..78defc5a 100644
--- a/test/modules/navigator.js
+++ b/test/modules/navigator.js
@@ -4,7 +4,7 @@
var debug = false,
viewer,
displayRegion,
- navigator,
+ navigatorElement,
navigatorScaleFactor,
contentStartFromLeft,
contentStartFromTop,
@@ -12,6 +12,20 @@
displayRegionHeight,
topNavigatorClickAdjustment;
+ var resetTestVariables = function () {
+ if (viewer) {
+ viewer.close();
+ }
+ displayRegion = null;
+ navigatorElement = null;
+ navigatorScaleFactor = null;
+ contentStartFromLeft = null;
+ contentStartFromTop = null;
+ displayRegionWidth = null;
+ displayRegionHeight = null;
+ topNavigatorClickAdjustment = 0;
+ };
+
QUnit.module("navigator", {
beforeEach: function () {
Util.initializeTestDOM();
@@ -29,44 +43,41 @@
}
});
- var resetTestVariables = function () {
- if (viewer) {
- viewer.close();
- }
- displayRegion = null;
- navigator = null;
- navigatorScaleFactor = null;
- contentStartFromLeft = null;
- contentStartFromTop = null;
- displayRegionWidth = null;
- displayRegionHeight = null;
- topNavigatorClickAdjustment = 0;
- };
-
var assessNavigatorLocation = function (assert, expectedX, expectedY) {
- var navigator = $(".navigator");
-
- Util.assessNumericValue(assert, expectedX, navigator.offset().left, 10, ' Navigator x Position');
- Util.assessNumericValue(assert, expectedY, navigator.offset().top, 10, ' Navigator y Position');
+ navigatorElement = navigatorElement || $(".navigator");
+ Util.assessNumericValue(assert, expectedX, navigatorElement.offset().left, 10, ' Navigator x Position');
+ Util.assessNumericValue(assert, expectedY, navigatorElement.offset().top, 10, ' Navigator y Position');
};
var assessNavigatorSize = function (assert, expectedWidth, expectedHeight, msg) {
- var navigator = $(".navigator");
-
- Util.assessNumericValue(assert, expectedWidth, navigator.width(), 2, ' Navigator Width ' + (msg ? msg : ''));
- Util.assessNumericValue(assert, expectedHeight, navigator.height(), 2, ' Navigator Height ' + (msg ? msg : ''));
+ msg = msg || "";
+ navigatorElement = navigatorElement || $(".navigator");
+ Util.assessNumericValue(assert, expectedWidth, navigatorElement.width(), 2, ' Navigator Width ' + msg);
+ Util.assessNumericValue(assert, expectedHeight, navigatorElement.height(), 2, ' Navigator Height ' + msg);
};
var assessNavigatorAspectRatio = function (assert, expectedAspectRatio, variance, msg) {
- var navigator = $(".navigator");
-
- Util.assessNumericValue(assert, expectedAspectRatio, navigator.width() / navigator.height(), variance, ' Navigator Aspect Ratio ' + (msg ? msg : ''));
+ msg = msg || "";
+ navigatorElement = navigatorElement || $(".navigator");
+ Util.assessNumericValue(
+ assert,
+ expectedAspectRatio,
+ navigatorElement.width() / navigatorElement.height(),
+ variance,
+ ' Navigator Aspect Ratio ' + msg
+ );
};
var assessNavigatorArea = function (assert, expectedArea, msg) {
- var navigator = $(".navigator");
-
- Util.assessNumericValue(assert, expectedArea, navigator.width() * navigator.height(), Math.max(navigator.width(), navigator.height()), ' Navigator Area ' + (msg ? msg : ''));
+ msg = msg || "";
+ navigatorElement = navigatorElement || $(".navigator");
+ Util.assessNumericValue(
+ assert,
+ expectedArea,
+ navigatorElement.width() * navigatorElement.height(),
+ Math.max(navigatorElement.width(), navigatorElement.height()),
+ ' Navigator Area ' + msg
+ );
};
var navigatorRegionBoundsInPoints = function () {
@@ -76,27 +87,33 @@
expectedDisplayRegionXLocation,
expectedDisplayRegionYLocation;
- if (navigator === null) {
- navigator = $(".navigator");
+ if (navigatorElement === null) {
+ navigatorElement = $(".navigator");
navigatorScaleFactor = Math.min(
- navigator.width() / viewer.viewport._contentSize.x,
- navigator.height() / viewer.viewport._contentSize.y);
+ navigatorElement.width() / viewer.viewport._contentSize.x,
+ navigatorElement.height() / viewer.viewport._contentSize.y
+ );
displayRegionWidth = viewer.viewport._contentSize.x * navigatorScaleFactor;
displayRegionHeight = viewer.viewport._contentSize.y * navigatorScaleFactor;
- contentStartFromLeft = (navigator.width() - displayRegionWidth) / 2;
- contentStartFromTop = (navigator.height() - displayRegionHeight) / 2;
+ contentStartFromLeft = (navigatorElement.width() - displayRegionWidth) / 2;
+ contentStartFromTop = (navigatorElement.height() - displayRegionHeight) / 2;
}
expectedDisplayRegionWidth = viewer.viewport.getBounds().width * displayRegionWidth;
expectedDisplayRegionHeight = viewer.viewport.getBounds().height * displayRegionHeight * viewer.source.aspectRatio;
expectedDisplayRegionXLocation = viewer.viewport.getBounds().x * displayRegionWidth + contentStartFromLeft;
expectedDisplayRegionYLocation = viewer.viewport.getBounds().y * displayRegionHeight * viewer.source.aspectRatio + contentStartFromTop;
- regionBoundsInPoints = new OpenSeadragon.Rect(expectedDisplayRegionXLocation, expectedDisplayRegionYLocation, expectedDisplayRegionWidth, expectedDisplayRegionHeight);
+ regionBoundsInPoints = new OpenSeadragon.Rect(
+ expectedDisplayRegionXLocation,
+ expectedDisplayRegionYLocation,
+ expectedDisplayRegionWidth,
+ expectedDisplayRegionHeight
+ );
if (debug) {
console.log('Image width: ' + viewer.viewport._contentSize.x + '\n' +
'Image height: ' + viewer.viewport._contentSize.y + '\n' +
- 'navigator.width(): ' + navigator.width() + '\n' +
- 'navigator.height(): ' + navigator.height() + '\n' +
+ 'navigatorElement.width(): ' + navigatorElement.width() + '\n' +
+ 'navigatorElement.height(): ' + navigatorElement.height() + '\n' +
'navigatorScaleFactor: ' + navigatorScaleFactor + '\n' +
'contentStartFromLeft: ' + contentStartFromLeft + '\n' +
'contentStartFromTop: ' + contentStartFromTop + '\n' +
@@ -108,25 +125,34 @@
'expectedDisplayRegionHeight: ' + expectedDisplayRegionHeight + '\n'
);
}
-
return regionBoundsInPoints;
-
};
var assessDisplayRegion = function (assert, status) {
-
if (debug) {
console.log(status);
}
var expectedBounds = navigatorRegionBoundsInPoints();
- Util.assessNumericValue(assert, expectedBounds.width, displayRegion.width() + viewer.navigator.totalBorderWidths.x, 2, status + ' Width synchronization');
- Util.assessNumericValue(assert, expectedBounds.height, displayRegion.height() + viewer.navigator.totalBorderWidths.y, 2, status + ' Height synchronization');
+ Util.assessNumericValue(
+ assert,
+ expectedBounds.width,
+ displayRegion.width() + viewer.navigator.totalBorderWidths.x,
+ 2,
+ status + ' Width synchronization'
+ );
+ Util.assessNumericValue(
+ assert,
+ expectedBounds.height,
+ displayRegion.height() + viewer.navigator.totalBorderWidths.y,
+ 2,
+ status + ' Height synchronization'
+ );
Util.assessNumericValue(assert, expectedBounds.x, displayRegion.position().left, 2, status + ' Left synchronization');
Util.assessNumericValue(assert, expectedBounds.y, displayRegion.position().top, 2, status + ' Top synchronization');
};
- var waitForViewer(assert, = function (assert) {
- return function (handler, count, lastDisplayRegionLeft, lastDisplayWidth) {
+ var waitForViewer = function () {
+ return function (assert, handler, count, lastDisplayRegionLeft, lastDisplayWidth) {
var viewerAndNavigatorDisplayReady = false,
currentDisplayRegionLeft,
currentDisplayWidth;
@@ -151,17 +177,20 @@
Util.equalsWithVariance(assert, viewer.viewport.getBounds(true).width, viewer.viewport.getBounds().width, 0.0001);
}
catch (err) {
+ if(debug) {
+ console.log(err);
+ }
//Ignore. Subsequent code will try again shortly
}
- if (( !viewerAndNavigatorDisplayReady) && count < 50) {
+ if (( !viewerAndNavigatorDisplayReady) && count < 200) {
count++;
setTimeout(function () {
- waitForViewer(assert, (handler, count, currentDisplayRegionLeft, currentDisplayWidth);
- }, 100);
+ waitForViewer(assert, handler, count, currentDisplayRegionLeft, currentDisplayWidth);
+ }, 50);
}
else {
- if (count === 40) {
- console.log("waitForViewer(assert, :" +
+ if (debug) {
+ console.log("waitForViewer :" +
viewer.drawer + ":" + viewer.world.needsDraw() + ":" +
viewerAndNavigatorDisplayReady + ":" +
lastDisplayRegionLeft + ":" + currentDisplayRegionLeft + ":" +
@@ -171,7 +200,9 @@
viewer.viewport.getBounds(true).width + ":" + viewer.viewport.getBounds().width + ":" +
count);
}
- handler();
+ if (handler) {
+ handler(assert);
+ }
}
};
}();
@@ -181,8 +212,8 @@
var $canvas = $(viewer.element).find('.openseadragon-canvas'),
offset = $canvas.offset(),
event = {
- clientX:offset.left + locationX,
- clientY:offset.top + locationY
+ clientX: offset.left + locationX,
+ clientY: offset.top + locationY
};
$canvas
.simulate(OpenSeadragon.MouseTracker.haveMouseEnter ? 'mouseenter' : 'mouseover', event)
@@ -193,14 +224,46 @@
var simulateNavigatorDrag = function (viewer, distanceX, distanceY) {
var $canvas = $(viewer.element).find('.displayregion'),
event = {
- dx:Math.floor(distanceX),
- dy:Math.floor(distanceY)
+ dx: Math.floor(distanceX),
+ dy: Math.floor(distanceY)
};
$canvas
.simulate('drag', event);
};
- var assessViewerInCorner = function (assert, theContentCorner) {
+ var dragNavigatorBackToCenter = function () {
+ var start = viewer.viewport.getBounds().getTopLeft(),
+ target = new OpenSeadragon.Point(0.5 - viewer.viewport.getBounds().width / 2,
+ 1 / viewer.source.aspectRatio / 2 - viewer.viewport.getBounds().height / 2),
+ delta = target.minus(start);
+ if (viewer.source.aspectRatio < 1) {
+ delta.y *= viewer.source.aspectRatio;
+ }
+ simulateNavigatorDrag(viewer.navigator, delta.x * displayRegionWidth, delta.y * displayRegionHeight);
+ };
+
+ var resizeElement = function ($element, width, height) {
+ $element.width(width);
+ $element.height(height);
+ };
+
+
+ var assessViewerInCenter = function (assert) {
+ var yPositionVariance = 0.04;
+ if (viewer.source.aspectRatio < 1) {
+ yPositionVariance /= viewer.source.aspectRatio;
+ }
+ Util.assessNumericValue(
+ assert,
+ 1 / viewer.source.aspectRatio / 2,
+ viewer.viewport.getCenter().y,
+ yPositionVariance,
+ ' Viewer at center, y coord'
+ );
+ Util.assessNumericValue(assert, 0.5, viewer.viewport.getCenter().x, 0.4, ' Viewer at center, x coord');
+ };
+
+ var assessViewerInCorner = function (theContentCorner, assert) {
return function () {
var expectedXCoordinate, expectedYCoordinate;
if (theContentCorner === "TOPLEFT") {
@@ -220,100 +283,91 @@
expectedYCoordinate = 1 / viewer.source.aspectRatio - viewer.viewport.getBounds().height;
}
if (viewer.viewport.getBounds().width < 1) {
- Util.assessNumericValue(assert, expectedXCoordinate, viewer.viewport.getBounds().x, 0.04, ' Viewer at ' + theContentCorner + ', x coord');
+ Util.assessNumericValue(
+ assert,
+ expectedXCoordinate,
+ viewer.viewport.getBounds().x,
+ 0.04,
+ ' Viewer at ' + theContentCorner + ', x coord'
+ );
}
if (viewer.viewport.getBounds().height < 1 / viewer.source.aspectRatio) {
- Util.assessNumericValue(assert, expectedYCoordinate, viewer.viewport.getBounds().y, 0.04, ' Viewer at ' + theContentCorner + ', y coord');
+ Util.assessNumericValue(
+ assert,
+ expectedYCoordinate,
+ viewer.viewport.getBounds().y,
+ 0.04,
+ ' Viewer at ' + theContentCorner + ', y coord'
+ );
}
};
};
- var assessViewerInCenter = function (assert) {
- var yPositionVariance = 0.04;
- if (viewer.source.aspectRatio < 1) {
- yPositionVariance = yPositionVariance / viewer.source.aspectRatio;
- }
- Util.assessNumericValue(assert, 1 / viewer.source.aspectRatio / 2, viewer.viewport.getCenter().y, yPositionVariance, ' Viewer at center, y coord');
- Util.assessNumericValue(assert, 0.5, viewer.viewport.getCenter().x, 0.4, ' Viewer at center, x coord');
- };
-
- var clickOnNavigator = function (theContentCorner) {
- return function () {
- var xPos,
- yPos;
- if (theContentCorner === "TOPLEFT") {
- xPos = contentStartFromLeft;
- yPos = contentStartFromTop + topNavigatorClickAdjustment;
- }
- else if (theContentCorner === "TOPRIGHT") {
- xPos = contentStartFromLeft + displayRegionWidth;
- yPos = contentStartFromTop+ topNavigatorClickAdjustment;
- }
- else if (theContentCorner === "BOTTOMRIGHT") {
- xPos = contentStartFromLeft + displayRegionWidth;
- yPos = contentStartFromTop + displayRegionHeight;
- }
- else if (theContentCorner === "BOTTOMLEFT") {
- xPos = contentStartFromLeft;
- yPos = contentStartFromTop + displayRegionHeight;
- }
- simulateNavigatorClick(viewer.navigator, xPos, yPos);
- };
- };
-
- var dragNavigatorBackToCenter = function () {
- var start = viewer.viewport.getBounds().getTopLeft(),
- target = new OpenSeadragon.Point(0.5 - viewer.viewport.getBounds().width / 2,
- 1 / viewer.source.aspectRatio / 2 - viewer.viewport.getBounds().height / 2),
- delta = target.minus(start);
- if (viewer.source.aspectRatio < 1) {
- delta.y = delta.y * viewer.source.aspectRatio;
- }
- simulateNavigatorDrag(viewer.navigator, delta.x * displayRegionWidth, delta.y * displayRegionHeight);
- };
-
- var resizeElement = function ($element, width, height) {
- $element.width(width);
- $element.height(height);
- };
-
var assessNavigatorViewerPlacement = function (assert, seadragonProperties, testProperties) {
var done = assert.async();
+
+ seadragonProperties.visibilityRatio = 1;
+ viewer = OpenSeadragon(seadragonProperties);
+
+ var clickOnNavigator = function (theContentCorner) {
+ return function () {
+ var xPos,
+ yPos;
+ if (theContentCorner === "TOPLEFT") {
+ xPos = contentStartFromLeft;
+ yPos = contentStartFromTop + topNavigatorClickAdjustment;
+ }
+ else if (theContentCorner === "TOPRIGHT") {
+ xPos = contentStartFromLeft + displayRegionWidth;
+ yPos = contentStartFromTop + topNavigatorClickAdjustment;
+ }
+ else if (theContentCorner === "BOTTOMRIGHT") {
+ xPos = contentStartFromLeft + displayRegionWidth;
+ yPos = contentStartFromTop + displayRegionHeight;
+ }
+ else if (theContentCorner === "BOTTOMLEFT") {
+ xPos = contentStartFromLeft;
+ yPos = contentStartFromTop + displayRegionHeight;
+ }
+ simulateNavigatorClick(viewer.navigator, xPos, yPos);
+ };
+ };
+
var navigatorOperationScenarios = [
- {interactionOperation:clickOnNavigator("TOPRIGHT"),
- assessmentOperation:assessViewerInCorner(assert, "TOPRIGHT"),
- assessmentMessage:"After click on navigator on top right" },
- {interactionOperation:dragNavigatorBackToCenter,
- assessmentOperation:assessViewerInCenter(assert),
- assessmentMessage:"After drag on navigator from top right" },
- {interactionOperation:clickOnNavigator("BOTTOMLEFT"),
- assessmentOperation:assessViewerInCorner(assert, "BOTTOMLEFT"),
- assessmentMessage:"After click on navigator on bottom left" },
- {interactionOperation:dragNavigatorBackToCenter,
- assessmentOperation:assessViewerInCenter(assert),
- assessmentMessage:"After drag on navigator from bottom left" },
- {interactionOperation:clickOnNavigator("BOTTOMRIGHT"),
- assessmentOperation:assessViewerInCorner(assert, "BOTTOMRIGHT"),
- assessmentMessage:"After click on navigator on bottom right" },
- {interactionOperation:dragNavigatorBackToCenter,
- assessmentOperation:assessViewerInCenter(assert),
- assessmentMessage:"After drag on navigator from bottom right" },
- {interactionOperation:clickOnNavigator("TOPLEFT"),
- assessmentOperation:assessViewerInCorner(assert, "TOPLEFT"),
- assessmentMessage:"After click on navigator on top left" },
- {interactionOperation:dragNavigatorBackToCenter,
- assessmentOperation:assessViewerInCenter(assert),
- assessmentMessage:"After drag on navigator from top left" }
+ {interactionOperation: clickOnNavigator("TOPRIGHT"),
+ assessmentOperation: assessViewerInCorner("TOPRIGHT", assert),
+ assessmentMessage: "After click on navigator on top right"},
+ {interactionOperation: dragNavigatorBackToCenter,
+ assessmentOperation: assessViewerInCenter,
+ assessmentMessage: "After drag on navigator from top right"},
+ {interactionOperation: clickOnNavigator("BOTTOMLEFT"),
+ assessmentOperation: assessViewerInCorner("BOTTOMLEFT", assert),
+ assessmentMessage: "After click on navigator on bottom left"},
+ {interactionOperation: dragNavigatorBackToCenter,
+ assessmentOperation: assessViewerInCenter,
+ assessmentMessage: "After drag on navigator from bottom left"},
+ {interactionOperation: clickOnNavigator("BOTTOMRIGHT"),
+ assessmentOperation: assessViewerInCorner("BOTTOMRIGHT", assert),
+ assessmentMessage: "After click on navigator on bottom right"},
+ {interactionOperation: dragNavigatorBackToCenter,
+ assessmentOperation: assessViewerInCenter,
+ assessmentMessage: "After drag on navigator from bottom right"},
+ {interactionOperation: clickOnNavigator("TOPLEFT"),
+ assessmentOperation: assessViewerInCorner("TOPLEFT", assert),
+ assessmentMessage: "After click on navigator on top left"},
+ {interactionOperation: dragNavigatorBackToCenter,
+ assessmentOperation: assessViewerInCenter,
+ assessmentMessage: "After drag on navigator from top left"}
],
viewerResizeScenarios = [
- {resizeFactorX:0.5, resizeFactorY:1.0, assessmentMessage:"After Viewer Resize (50%, 100%)"},
- {resizeFactorX:1.0, resizeFactorY:0.5, assessmentMessage:"After Viewer Resize (100%, 50%)"},
- {resizeFactorX:1.0, resizeFactorY:1.0, assessmentMessage:"After Viewer Resize (100%, 100%)"}
+ {resizeFactorX: 0.5, resizeFactorY: 1.0, assessmentMessage: "After Viewer Resize (50%, 100%)"},
+ {resizeFactorX: 1.0, resizeFactorY: 0.5, assessmentMessage: "After Viewer Resize (100%, 50%)"},
+ {resizeFactorX: 1.0, resizeFactorY: 1.0, assessmentMessage: "After Viewer Resize (100%, 100%)"}
],
navigatorResizeScenarios = [
- {resizeFactorX:0.75, resizeFactorY:1.0, assessmentMessage:"After Navigator Resize (75%, 100%)"},
- {resizeFactorX:1.0, resizeFactorY:0.75, assessmentMessage:"After Navigator Resize (100%, 75%)"},
- {resizeFactorX:1.0, resizeFactorY:1.0, assessmentMessage:"After Navigator Resize (100%, 100%)"}
+ {resizeFactorX: 0.75, resizeFactorY: 1.0, assessmentMessage: "After Navigator Resize (75%, 100%)"},
+ {resizeFactorX: 1.0, resizeFactorY: 0.75, assessmentMessage: "After Navigator Resize (100%, 75%)"},
+ {resizeFactorX: 1.0, resizeFactorY: 1.0, assessmentMessage: "After Navigator Resize (100%, 100%)"}
],
autoFadeWaitTime = 100,
navigatorElement = null,
@@ -321,9 +375,6 @@
viewerOriginalSize = null,
navigatorOriginalSize = null;
- seadragonProperties.visibilityRatio = 1;
- viewer = OpenSeadragon(seadragonProperties);
-
if ($.isNumeric(testProperties.topNavigatorClickAdjustment))
{
topNavigatorClickAdjustment = testProperties.topNavigatorClickAdjustment;
@@ -333,82 +384,112 @@
return function () {
var nextStep = step + 1;
assessDisplayRegion(assert, navigatorOperationScenarios[step].assessmentMessage);
- navigatorOperationScenarios[step].assessmentOperation();
+ navigatorOperationScenarios[step].assessmentOperation(assert);
if (step === navigatorOperationScenarios.length - 1) {
done();
}
else {
navigatorOperationScenarios[nextStep].interactionOperation();
- waitForViewer(assert, (assessNavigatorOperationAndTakeNextStep(nextStep));
+ waitForViewer(assert, assessNavigatorOperationAndTakeNextStep(nextStep));
}
};
};
- var assessAfterSnapback = function (assert) {
+ var assessAfterSnapback = function () {
assessDisplayRegion(assert, "After snapback");
navigatorOperationScenarios[0].interactionOperation();
- waitForViewer(assert, (assessNavigatorOperationAndTakeNextStep(0));
+ waitForViewer(assert, assessNavigatorOperationAndTakeNextStep(0));
};
- var assessAfterDragOnViewer = function (assert) {
+ var assessAfterDragOnViewer = function () {
assessDisplayRegion(assert, "After pan");
viewer.viewport.applyConstraints();
- waitForViewer(assert, assessAfterSnapback(assert));
+ waitForViewer(assert, assessAfterSnapback);
};
- var assessAfterZoomOnViewer = function (assert) {
+ var assessAfterZoomOnViewer = function () {
var target = new OpenSeadragon.Point(0.4, 0.4);
assessDisplayRegion(assert, "After image zoom");
viewer.viewport.panTo(target);
- waitForViewer(assert, (assessAfterDragOnViewer(assert));
+ waitForViewer(assert, assessAfterDragOnViewer);
};
- var assessAfterResizeNavigator = function (assert) {
+ var assessAfterResizeNavigator = function () {
viewer.viewport.zoomTo(viewer.viewport.getZoom() * 2);
- waitForViewer(assert, (assessAfterZoomOnViewer(assert));
+ waitForViewer(assert, assessAfterZoomOnViewer);
};
- var assessNavigatorResizeAndTakeNextStep = function (assert, step) {
+ var assessNavigatorResizeAndTakeNextStep = function (step) {
return function () {
var nextStep = step + 1;
assessNavigatorSize(assert, navigatorOriginalSize.x * navigatorResizeScenarios[step].resizeFactorX, navigatorOriginalSize.y * navigatorResizeScenarios[step].resizeFactorY, navigatorResizeScenarios[step].assessmentMessage);
assessDisplayRegion(assert, navigatorResizeScenarios[step].assessmentMessage);
if (step === viewerResizeScenarios.length - 1) {
- assessAfterResizeNavigator(assert);
+ assessAfterResizeNavigator();
}
else {
resizeElement(navigatorElement, navigatorOriginalSize.x * navigatorResizeScenarios[nextStep].resizeFactorX, navigatorOriginalSize.y * navigatorResizeScenarios[nextStep].resizeFactorY);
- waitForViewer(assert, (assessNavigatorResizeAndTakeNextStep(assert, nextStep));
+ waitForViewer(assert, assessNavigatorResizeAndTakeNextStep(nextStep));
}
};
};
- var assessViewerResizeAndTakeNextStep = function (assert, step) {
+ var assessViewerResizeAndTakeNextStep = function (step) {
return function () {
var nextStep = step + 1;
if (seadragonProperties.navigatorId) {
// Navigator hosted in outside element...size shouldn't change
- assessNavigatorSize(assert, navigatorOriginalSize.x, navigatorOriginalSize.y, viewerResizeScenarios[step].assessmentMessage);
+ assessNavigatorSize(
+ assert,
+ navigatorOriginalSize.x,
+ navigatorOriginalSize.y,
+ viewerResizeScenarios[step].assessmentMessage
+ );
}
else {
// Navigator hosted in viewer
if (seadragonProperties.navigatorPosition && seadragonProperties.navigatorPosition == 'ABSOLUTE') {
// Navigator positioned 'ABSOLUTE'...size shouldn't change
- assessNavigatorSize(assert, navigatorOriginalSize.x, navigatorOriginalSize.y, viewerResizeScenarios[step].assessmentMessage);
+
+ assessNavigatorSize(
+ assert,
+ navigatorOriginalSize.x,
+ navigatorOriginalSize.y,
+ viewerResizeScenarios[step].assessmentMessage
+ );
}
else {
// Navigator positioned 'TOP_LEFT', 'TOP_RIGHT', 'BOTTOM_LEFT', or 'BOTTOM_RIGHT'
if (seadragonProperties.navigatorMaintainSizeRatio) {
// Navigator should maintain aspect ratio and size proportioned to viewer size
- assessNavigatorAspectRatio(assert, viewerElement.width() / viewerElement.height(), 0.0001, viewerResizeScenarios[step].assessmentMessage);
- assessNavigatorSize(assert, viewerElement.width() * seadragonProperties.navigatorSizeRatio, viewerElement.height() * seadragonProperties.navigatorSizeRatio, viewerResizeScenarios[step].assessmentMessage);
+ assessNavigatorAspectRatio(
+ assert,
+ viewerElement.width() / viewerElement.height(),
+ 0.0001,
+ viewerResizeScenarios[step].assessmentMessage
+ );
+ assessNavigatorSize(
+ assert,
+ viewerElement.width() * seadragonProperties.navigatorSizeRatio,
+ viewerElement.height() * seadragonProperties.navigatorSizeRatio,
+ viewerResizeScenarios[step].assessmentMessage
+ );
}
else {
// Navigator should maintain aspect ratio and area
// Variances are loosened up here, since 1 pixel rounding difference in resizing to maintain area
// can cause a relatively large difference in area and aspect ratio.
- assessNavigatorAspectRatio(assert, viewerElement.width() / viewerElement.height(), 0.1, viewerResizeScenarios[step].assessmentMessage);
- assessNavigatorArea(assert, navigatorOriginalSize.x * navigatorOriginalSize.y, viewerResizeScenarios[step].assessmentMessage);
+ assessNavigatorAspectRatio(
+ assert,
+ viewerElement.width() / viewerElement.height(),
+ 0.1,
+ viewerResizeScenarios[step].assessmentMessage
+ );
+ assessNavigatorArea(
+ assert,
+ navigatorOriginalSize.x * navigatorOriginalSize.y,
+ viewerResizeScenarios[step].assessmentMessage
+ );
}
}
}
@@ -417,63 +498,64 @@
if (seadragonProperties.navigatorId) {
// Navigator hosted in outside element...run navigator resize tests
resizeElement(navigatorElement, navigatorOriginalSize.x * navigatorResizeScenarios[0].resizeFactorX, navigatorOriginalSize.y * navigatorResizeScenarios[0].resizeFactorY);
- waitForViewer(assert, (assessNavigatorResizeAndTakeNextStep(assert, 0));
+ waitForViewer(assert, assessNavigatorResizeAndTakeNextStep(0));
}
else {
// Navigator hosted in viewer...skip navigator resize tests
- assessAfterResizeNavigator(assert);
+ assessAfterResizeNavigator();
}
}
else {
resizeElement(viewerElement, viewerOriginalSize.x * viewerResizeScenarios[nextStep].resizeFactorX, viewerOriginalSize.y * viewerResizeScenarios[nextStep].resizeFactorY);
- waitForViewer(assert, (assessViewerResizeAndTakeNextStep(assert, (nextStep));
+ waitForViewer(assert, assessViewerResizeAndTakeNextStep(nextStep));
}
};
};
var captureInitialStateThenAct = function () {
assessDisplayRegion(assert, "After image load");
-
- testProperties.determineExpectationsAndAssessNavigatorLocation(seadragonProperties, testProperties);
-
+ testProperties.determineExpectationsAndAssessNavigatorLocation(assert, seadragonProperties, testProperties);
viewerOriginalSize = new OpenSeadragon.Point(viewerElement.width(), viewerElement.height());
navigatorOriginalSize = new OpenSeadragon.Point(navigatorElement.width(), navigatorElement.height());
resizeElement(viewerElement, viewerOriginalSize.x * viewerResizeScenarios[0].resizeFactorX, viewerOriginalSize.y * viewerResizeScenarios[0].resizeFactorY);
- waitForViewer(assert, (assessViewerResizeAndTakeNextStep(assert, (0));
+
+ waitForViewer(assert, assessViewerResizeAndTakeNextStep(0));
};
var assessAutoFadeTriggered = function () {
assert.ok(navigatorElement.parent().css("opacity") < 1, "Expecting navigator to be autofade when in the default location");
- waitForViewer(assert, (captureInitialStateThenAct);
+ waitForViewer(assert, captureInitialStateThenAct());
};
var assessAutoFadeDisabled = function () {
assert.ok(navigatorElement.parent().css("opacity") > 0, "Expecting navigator to be always visible when in a custom location");
- waitForViewer(assert, (captureInitialStateThenAct);
+ waitForViewer(assert, captureInitialStateThenAct());
};
var openHandler = function () {
viewer.removeHandler('open', openHandler);
- navigatorElement = $(testProperties.navigatorLocator);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
viewerElement = $("#" + seadragonProperties.id);
+ displayRegion = displayRegion || $(testProperties.displayRegionLocator);
+
//TODO This should be testProperties.testAutoFade, but test hangs. Fix this!
if (!testProperties.testAutohide) {
- waitForViewer(assert, (captureInitialStateThenAct);
+ waitForViewer(assert, captureInitialStateThenAct());
}
else {
assert.ok(navigatorElement.parent().css("opacity") > 0, "Expecting navigator to be visible initially");
var event = {
- clientX:1,
- clientY:1
+ clientX: 1,
+ clientY: 1
};
viewerElement.simulate('blur', event);
if (testProperties.expectedAutoFade) {
- setTimeout(assessAutoFadeTriggered,autoFadeWaitTime);
+ setTimeout(assessAutoFadeTriggered, autoFadeWaitTime);
} else {
- setTimeout(assessAutoFadeDisabled,autoFadeWaitTime);
+ setTimeout(assessAutoFadeDisabled, autoFadeWaitTime);
}
}
};
@@ -482,24 +564,31 @@
QUnit.test('DefaultNavigatorLocationWithWideImageTallViewer', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'tallexample',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/wide.dzi',
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: false,
- animationTime:0
+ id: 'tallexample',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/wide.dzi',
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: false,
+ animationTime: 0
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: false,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
- assessNavigatorLocation(assert, mainViewerElement.offset().left + mainViewerElement.width() - navigatorElement.width(),
- mainViewerElement.offset().top);
- assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
+ assessNavigatorLocation(
+ assert,
+ mainViewerElement.offset().left + mainViewerElement.width() - navigatorElement.width(),
+ mainViewerElement.offset().top
+ );
+ assessNavigatorSize(
+ assert,
+ mainViewerElement.width() * seadragonProperties.navigatorSizeRatio,
+ mainViewerElement.height() * seadragonProperties.navigatorSizeRatio
+ );
assessNavigatorAspectRatio(assert, mainViewerElement.width() / mainViewerElement.height(), 0.0001);
}
});
@@ -507,24 +596,24 @@
QUnit.test('DefaultNavigatorLocationWithTallImageWideViewer', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'wideexample',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/tall.dzi',
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: false,
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ id: 'wideexample',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/tall.dzi',
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: false,
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
assessNavigatorLocation(assert, mainViewerElement.offset().left + mainViewerElement.width() - navigatorElement.width(),
mainViewerElement.offset().top);
assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
@@ -535,26 +624,25 @@
QUnit.test('TopLeftNavigatorLocation', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'example',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/testpattern.dzi',
- showNavigationControl: false,
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: false,
- navigatorPosition: 'TOP_LEFT',
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.dzi',
+ showNavigationControl: false,
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: false,
+ navigatorPosition: 'TOP_LEFT',
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
assessNavigatorLocation(assert, mainViewerElement.offset().left,
mainViewerElement.offset().top);
assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
@@ -565,26 +653,26 @@
QUnit.test('TopRightNavigatorLocation', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'example',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/testpattern.dzi',
- showNavigationControl: false,
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: true,
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.dzi',
+ showNavigationControl: false,
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: true,
navigatorPosition: 'TOP_RIGHT',
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
assessNavigatorLocation(assert, mainViewerElement.offset().left + mainViewerElement.width() - navigatorElement.width(),
mainViewerElement.offset().top);
assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
@@ -595,26 +683,26 @@
QUnit.test('BottomLeftNavigatorLocation', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'example',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/testpattern.dzi',
- showNavigationControl: false,
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: false,
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.dzi',
+ showNavigationControl: false,
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: false,
navigatorPosition: 'BOTTOM_LEFT',
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
assessNavigatorLocation(assert, mainViewerElement.offset().left,
mainViewerElement.offset().top + mainViewerElement.height() - navigatorElement.height());
assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
@@ -625,26 +713,26 @@
QUnit.test('BottomRightNavigatorLocation', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'example',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/testpattern.dzi',
- showNavigationControl: false,
- showNavigator:true,
- navigatorSizeRatio:0.2,
- navigatorMaintainSizeRatio: false,
- navigatorPosition: 'BOTTOM_RIGHT',
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.dzi',
+ showNavigationControl: false,
+ showNavigator: true,
+ navigatorSizeRatio: 0.2,
+ navigatorMaintainSizeRatio: false,
+ navigatorPosition: 'BOTTOM_RIGHT',
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
+ navigatorElement = navigatorElement || $(testProperties.navigatorLocator);
assessNavigatorLocation(assert, mainViewerElement.offset().left + mainViewerElement.width() - navigatorElement.width(),
mainViewerElement.offset().top + mainViewerElement.height() - navigatorElement.height());
assessNavigatorSize(assert, mainViewerElement.width() * seadragonProperties.navigatorSizeRatio, mainViewerElement.height() * seadragonProperties.navigatorSizeRatio);
@@ -655,28 +743,27 @@
QUnit.test('AbsoluteNavigatorLocation', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'example',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/testpattern.dzi',
- showNavigationControl: false,
- showNavigator:true,
- navigatorPosition: 'ABSOLUTE',
- navigatorTop: 10,
- navigatorLeft: 10,
- navigatorHeight: 150,
- navigatorWidth: 175,
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.dzi',
+ showNavigationControl: false,
+ showNavigator: true,
+ navigatorPosition: 'ABSOLUTE',
+ navigatorTop: 10,
+ navigatorLeft: 10,
+ navigatorHeight: 150,
+ navigatorWidth: 175,
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'.navigator .displayregion',
- navigatorLocator:'.navigator',
+ displayRegionLocator: '.navigator .displayregion',
+ navigatorLocator: '.navigator',
testAutoFade: true,
expectedAutoFade: true,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
- var mainViewerElement = $("#" + seadragonProperties.id),
- navigatorElement = $(testProperties.navigatorLocator);
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
+ var mainViewerElement = $("#" + seadragonProperties.id);
assessNavigatorLocation(assert, mainViewerElement.offset().left + seadragonProperties.navigatorLeft,
mainViewerElement.offset().top + seadragonProperties.navigatorTop);
assessNavigatorSize(assert, seadragonProperties.navigatorWidth, seadragonProperties.navigatorHeight);
@@ -686,18 +773,18 @@
QUnit.test('CustomNavigatorElementWithWideImageWideViewer', function (assert) {
assessNavigatorViewerPlacement(assert, {
- id:'wideexample',
- navigatorId:'exampleNavigator',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/wide.dzi',
- showNavigator:true,
- animationTime:0
+ id: 'wideexample',
+ navigatorId: 'exampleNavigator',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/wide.dzi',
+ showNavigator: true,
+ animationTime: 0
},
{
- displayRegionLocator:'#exampleNavigator .displayregion',
- navigatorLocator:'#exampleNavigator',
+ displayRegionLocator: '#exampleNavigator .displayregion',
+ navigatorLocator: '#exampleNavigator',
testAutoFade: false,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
var mainViewerElement = $("#" + seadragonProperties.id),
navigatorViewerElement = $("#" + seadragonProperties.navigatorId);
assessNavigatorLocation(assert, mainViewerElement.offset().left,
@@ -708,7 +795,7 @@
QUnit.test('CustomDialogNavigatorElementWithTallImageTallViewer', function (assert) {
$('#exampleNavigator').dialog({ width: 150,
- height:100,
+ height: 100,
open: function (event, ui) {
$('#exampleNavigator').width(150);
$('#exampleNavigator').height(100);
@@ -722,24 +809,24 @@
//}
});
assessNavigatorViewerPlacement(assert, {
- id:'tallexample',
- navigatorId:'exampleNavigator',
- prefixUrl:'/build/openseadragon/images/',
- tileSources:'/test/data/tall.dzi',
- showNavigator:true,
- animationTime:0,
- controlsFadeDelay:0,
- controlsFadeLength:1
+ id: 'tallexample',
+ navigatorId: 'exampleNavigator',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/tall.dzi',
+ showNavigator: true,
+ animationTime: 0,
+ controlsFadeDelay: 0,
+ controlsFadeLength: 1
},
{
- displayRegionLocator:'#exampleNavigator .displayregion',
- navigatorLocator:'#exampleNavigator',
+ displayRegionLocator: '#exampleNavigator .displayregion',
+ navigatorLocator: '#exampleNavigator',
testAutoFade: true,
expectedAutoFade: false,
//On Firefox at some screen size/resolution/magnification combinations, there is an issue with the
//simulated click. This property is a work around for that problem
topNavigatorClickAdjustment: 15,
- determineExpectationsAndAssessNavigatorLocation:function (seadragonProperties, testProperties) {
+ determineExpectationsAndAssessNavigatorLocation: function (assert, seadragonProperties, testProperties) {
var jqueryDialog = $(testProperties.navigatorLocator);
assessNavigatorLocation(assert, jqueryDialog.offset().left,
jqueryDialog.offset().top);
@@ -749,8 +836,7 @@
});
QUnit.test('Viewer closing one image and opening another', function(assert) {
- var done = assert.async();
- var timeWatcher = Util.timeWatcher();
+ var timeWatcher = Util.timeWatcher(assert);
viewer = OpenSeadragon({
id: 'example',
@@ -760,10 +846,30 @@
showNavigator: true
});
- var openHandler1 = function(event) {
- viewer.removeHandler('open', openHandler1);
- assert.ok(viewer.navigator, 'navigator exists');
- viewer.navigator.world.addHandler('add-item', navOpenHandler1);
+ var closeHandler1 = function(event) {
+ viewer.removeHandler('close', closeHandler1);
+ assert.ok(true, 'calling open closes the old one');
+ assert.equal(viewer.navigator.source, null, 'navigator source has been cleared');
+ };
+
+ var closeHandler2 = function(event) {
+ viewer.removeHandler('close', closeHandler2);
+ setTimeout(function() {
+ assert.ok(!viewer.navigator._updateRequestId, 'navigator timer is off');
+ timeWatcher.done();
+ }, 100);
+ };
+
+ var navOpenHandler2 = function(event) {
+ viewer.navigator.world.removeHandler('add-item', navOpenHandler2);
+ assert.equal(viewer.navigator.source, viewer.source, 'viewer and navigator have the same source');
+ viewer.addHandler('close', closeHandler2);
+ viewer.close();
+ };
+
+ var openHandler2 = function(event) {
+ viewer.removeHandler('open', openHandler2);
+ viewer.navigator.world.addHandler('add-item', navOpenHandler2);
};
var navOpenHandler1 = function(event) {
@@ -775,30 +881,10 @@
viewer.open('/test/data/tall.dzi');
};
- var closeHandler1 = function(event) {
- viewer.removeHandler('close', closeHandler1);
- assert.ok(true, 'calling open closes the old one');
- assert.equal(viewer.navigator.source, null, 'navigator source has been cleared');
- };
-
- var openHandler2 = function(event) {
- viewer.removeHandler('open', openHandler2);
- viewer.navigator.world.addHandler('add-item', navOpenHandler2);
- };
-
- var navOpenHandler2 = function(event) {
- viewer.navigator.world.removeHandler('add-item', navOpenHandler2);
- assert.equal(viewer.navigator.source, viewer.source, 'viewer and navigator have the same source');
- viewer.addHandler('close', closeHandler2);
- viewer.close();
- };
-
- var closeHandler2 = function(event) {
- viewer.removeHandler('close', closeHandler2);
- setTimeout(function() {
- assert.ok(!viewer.navigator._updateRequestId, 'navigator timer is off');
- timeWatcher.done();
- }, 100);
+ var openHandler1 = function(event) {
+ viewer.removeHandler('open', openHandler1);
+ assert.ok(viewer.navigator, 'navigator exists');
+ viewer.navigator.world.addHandler('add-item', navOpenHandler1);
};
viewer.addHandler('open', openHandler1);
@@ -816,13 +902,6 @@
collectionMode: true
});
- var openHandler = function() {
- viewer.removeHandler('open', openHandler);
- viewer.navigator.world.addHandler('add-item', navOpenHandler);
- // The navigator may already have added the items.
- navOpenHandler();
- };
-
var navOpenHandler = function(event) {
if (viewer.navigator.world.getItemCount() === 2) {
viewer.navigator.world.removeHandler('add-item', navOpenHandler);
@@ -830,13 +909,13 @@
setTimeout(function() {
// Test initial formation
for (var i = 0; i < 2; i++) {
- propEqual(viewer.navigator.world.getItemAt(i).getBounds(),
+ assert.propEqual(viewer.navigator.world.getItemAt(i).getBounds(),
viewer.world.getItemAt(i).getBounds(), 'bounds are the same');
}
// Try moving one
viewer.world.getItemAt(0).setPosition(new OpenSeadragon.Point(-200, -200));
- propEqual(viewer.navigator.world.getItemAt(0).getBounds(),
+ assert.propEqual(viewer.navigator.world.getItemAt(0).getBounds(),
viewer.world.getItemAt(0).getBounds(), 'bounds are the same after move');
done();
@@ -844,6 +923,13 @@
}
};
+ var openHandler = function() {
+ viewer.removeHandler('open', openHandler);
+ viewer.navigator.world.addHandler('add-item', navOpenHandler);
+ // The navigator may already have added the items.
+ navOpenHandler();
+ };
+
viewer.addHandler('open', openHandler);
});
@@ -930,7 +1016,7 @@
});
QUnit.test('Viewer options transmitted to navigator', function(assert) {
- var done = assert.async();a
+ var done = assert.async();
viewer = OpenSeadragon({
id: 'example',
prefixUrl: '/build/openseadragon/images/',
@@ -943,11 +1029,9 @@
viewer.addHandler('open', function openHandler() {
viewer.removeHandler('open', openHandler);
- var navigator = viewer.navigator;
-
- assert.equal(navigator.prefixUrl, viewer.prefixUrl,
+ assert.equal(viewer.navigator.prefixUrl, viewer.prefixUrl,
"Prefix URL should be transmitted to the navigator.");
- assert.equal(navigator.crossOriginPolicy, viewer.crossOriginPolicy,
+ assert.equal(viewer.navigator.crossOriginPolicy, viewer.crossOriginPolicy,
"Cross origin policy should be transmitted to the navigator.");
done();
});
@@ -967,13 +1051,11 @@
viewer.addHandler('open', function openHandler() {
viewer.removeHandler('open', openHandler);
- var navigator = viewer.navigator;
-
- assert.equal(navigator.viewport.getRotation(), 45,
+ assert.equal(viewer.navigator.viewport.getRotation(), 45,
"Rotation set in constructor should be applied to navigator by default.");
viewer.viewport.setRotation(90);
- assert.equal(navigator.viewport.getRotation(), 90,
+ assert.equal(viewer.navigator.viewport.getRotation(), 90,
"Rotation set by setRotation should be applied to navigator by default.");
done();
@@ -994,13 +1076,11 @@
viewer.addHandler('open', function openHandler() {
viewer.removeHandler('open', openHandler);
- var navigator = viewer.navigator;
-
- assert.equal(navigator.viewport.getRotation(), 0,
+ assert.equal(viewer.navigator.viewport.getRotation(), 0,
"Rotation set in constructor should not be applied to navigator when navigatorRotate is false.");
viewer.viewport.setRotation(90);
- assert.equal(navigator.viewport.getRotation(), 0,
+ assert.equal(viewer.navigator.viewport.getRotation(), 0,
"Rotation set by setRotation should not be applied to navigator when navigatorRotate is false.");
done();
diff --git a/test/test.html b/test/test.html
index a165ffd6..786af542 100644
--- a/test/test.html
+++ b/test/test.html
@@ -45,7 +45,7 @@
+ so we put them last. -->
+