diff --git a/test/data/testpattern.js b/test/data/testpattern.js
new file mode 100644
index 00000000..8081b54b
--- /dev/null
+++ b/test/data/testpattern.js
@@ -0,0 +1,12 @@
+testpattern({
+ Image: {
+ xmlns: 'http://schemas.microsoft.com/deepzoom/2008',
+ Format: 'jpg',
+ Overlap: 1,
+ TileSize: 254,
+ Size:{
+ Height: 1000,
+ Width: 1000
+ }
+ }
+});
diff --git a/test/dzi-jsonp.js b/test/dzi-jsonp.js
new file mode 100644
index 00000000..138de35b
--- /dev/null
+++ b/test/dzi-jsonp.js
@@ -0,0 +1,51 @@
+(function() {
+
+ // TODO: How to know if a tile has been drawn? The tile-drawn event used below
+ // is defunct.
+
+ module('DZI JSONp');
+
+ var viewer = null;
+
+ // ----------
+ asyncTest('Open', function() {
+ $(document).ready(function() {
+ viewer = OpenSeadragon({
+ id: 'example',
+ prefixUrl: '/build/openseadragon/images/',
+ tileSources: '/test/data/testpattern.js'
+ });
+
+ ok(viewer, 'Viewer exists');
+
+ var openHandler = function(eventSender, eventData) {
+ viewer.removeHandler('open', openHandler);
+ ok(true, 'Open event was sent');
+ viewer.drawer.viewer = viewer;
+ viewer.addHandler('tile-drawn', tileDrawnHandler);
+ };
+
+ var tileDrawnHandler = function(eventSender, eventData) {
+ viewer.removeHandler('tile-drawn', tileDrawnHandler);
+ ok(true, 'A tile has been drawn');
+ start();
+ };
+
+ viewer.addHandler('open', openHandler);
+ });
+ });
+
+ // ----------
+ // asyncTest('Close', function() {
+ // var closeHandler = function() {
+ // viewer.removeHandler('close', closeHandler);
+ // $('#example').empty();
+ // ok(true, 'Close event was sent');
+ // start();
+ // };
+
+ // viewer.addHandler('close', closeHandler);
+ // viewer.close();
+ // });
+
+})();
diff --git a/test/test.html b/test/test.html
index 37a9afe4..878547a8 100644
--- a/test/test.html
+++ b/test/test.html
@@ -16,5 +16,6 @@
+