瀏覽代碼

wip tests

Steven Silvester 8 年之前
父節點
當前提交
a8e1cce199
共有 1 個文件被更改,包括 40 次插入24 次删除
  1. 40 24
      test/src/imagewidget/widget.spec.ts

+ 40 - 24
test/src/imagewidget/widget.spec.ts

@@ -40,22 +40,25 @@ class LogImage extends ImageWidget {
 }
 
 
-const IMAGES: Contents.IModel[] = [
-  {
-    path: utils.uuid() + '.png',
-    type: 'file',
-    mimetype: 'image/png',
-    content:  'R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
-    format: 'base64'
-  },
-  {
-    path: utils.uuid() + '.gif',
-    type: 'file',
-    mimetype: 'image/gif',
-    content: 'R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=',
-    format: 'base64'
-  }
-];
+/**
+ * The common image model.
+ */
+const IMAGE: Contents.IModel = {
+  path: utils.uuid() + '.png',
+  type: 'file',
+  mimetype: 'image/png',
+  content:  'R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
+  format: 'base64'
+};
+
+
+/**
+ * The alternate content.
+ */
+const OTHER = ('iVBORw0KGgoAAAANSUhEUgAAAAUA' +
+  'AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO' +
+  '9TXL0Y4OHwAAAABJRU5ErkJggg=='
+);
 
 
 describe('ImageWidget', () => {
@@ -63,22 +66,20 @@ describe('ImageWidget', () => {
   let factory = new Base64ModelFactory();
   let context: DocumentRegistry.Context;
   let manager: ServiceManager.IManager;
-  let widget: ImageWidget;
+  let widget: LogImage;
 
   before((done) => {
     manager = new ServiceManager();
     manager.ready.then(() => {
-      return manager.contents.save(IMAGES[0].path, IMAGES[0]);
-    }).then(() => {
-      return manager.contents.save(IMAGES[1].path, IMAGES[1]);
+      return manager.contents.save(IMAGE.path, IMAGE);
     }).then(() => {
       done();
     }).catch(done);
   });
 
   beforeEach((done) => {
-    context = new Context({ manager, factory, path: IMAGES[0].path });
-    widget = new ImageWidget(context);
+    context = new Context({ manager, factory, path: IMAGE.path });
+    widget = new LogImage(context);
     return context.revert().then(done, done);
   });
 
@@ -93,7 +94,7 @@ describe('ImageWidget', () => {
     });
 
     it('should keep the title in sync with the file name', (done) => {
-      let newPath = utils.uuid() + '.png';
+      let newPath = (IMAGE as any).path = utils.uuid() + '.png';
       expect(widget.title.label).to.be(context.path);
       context.pathChanged.connect(() => {
         expect(widget.title.label).to.be(newPath);
@@ -102,8 +103,23 @@ describe('ImageWidget', () => {
       return manager.contents.rename(context.path, newPath).catch(done);
     });
 
-    it('should handle a change to the content', () => {
+    it('should set the content after the context is ready', (done) => {
+      context.ready.then(() => {
+        sendMessage(widget, WidgetMessage.UpdateRequest);
+        let img = widget.node.querySelector('img') as HTMLImageElement;
+        expect(img.src).to.contain(IMAGE.content);
+        done();
+      }).catch(done);
+    });
 
+    it('should handle a change to the content', (done) => {
+      context.ready.then(() => {
+        context.model.fromString(OTHER);
+        sendMessage(widget, WidgetMessage.UpdateRequest);
+        let img = widget.node.querySelector('img') as HTMLImageElement;
+        expect(img.src).to.contain(OTHER);
+        done();
+      }).catch(done);
     });
 
   });