* IE8 support for makeAjaxRequest test (xhr.response does not exist,
responseText is supported by all major browsers)
* Update makeAjaxRequest test to confirm that the success callback is
called and that the error callback is not
* Add a test for makeAjaxRequest with an invalid file and verify that
error callback is called but the success callback is not
* Add tests for open failures
* Refactor tests to avoid tests depending on implied status from
previous tests:
1. The viewer is now created and destroyed for each
test to avoid pollution and simplify error handling: nothing
starts until you request it.
2. Some tests like Basic: Homepage depended on the Zoom & Pan tests;
now this is handled explicitly as part of the test setup
3. All basic tests are now properly async tests (since they needed
the viewer to load, they really were in the past except that
they were relying on the viewer state left behind from previous
tests)
* All tests now run inside the qunit-fixture to prevent masking
failures. Util.resetDom() has been refactored to use the
qunit-fixture and the teardown logic only used in the navigator
tests has been moved into the navigator test teardown method
* Fixed undeclared mainViewerElement variable in optional path in
the navigator tests
* JSHint cleanup
* Marked _showMessage/_hideMessage as private
* Fix DOM manipulation bug: call standard removeNode() method rather
than proprietary WebKit .remove()
* Change messageDiv to be the outer wrapper to simplify removing the
entire message container
* Use CSS display tables for vertical centering (tested back to IE8)
* Use the DOM instead of string concatenation
* Remove redundant styles ($.makeNeutralElement sets the same values
for margin, padding & border)
* Return the outer wrapper element to ease DOM addition & removal
This might be something we want to make configurable for users who want
to completely control how errors are displayed.
This also adds the first use of OpenSeadragon.makeCenteredNode currently
so we might want to clean up that code as well.
Setting onreadystatechange can avoid the possibility of it somehow being
called twice but there's no point in nulling the request right before we
let the GC collect it.
* Since async is always true – and browsers are starting to deprecate
synchronous XHR – we were able to prune considerable amount of code
* Add an error callback to match the existing success callback
This code is still under-tested and documented but no longer relies on
`drawLevel` being leaked into the global namespace where `updateLevel`
to find it.
See #145
Previously `request.onreadystatechange` was assigned an empty function
on success but null on failures, which breaks in IE (see
http://jsbin.com/ezozax/6/).
This patch simply mimics the success behaviour in the cleanup function
Closes#143