Browse Source

Add specs for missing startDrag options

Kevin Sawicki 8 years ago
parent
commit
8ce1930f0d
2 changed files with 18 additions and 2 deletions
  1. 2 2
      atom/browser/api/atom_api_web_contents.cc
  2. 16 0
      spec/api-web-contents-spec.js

+ 2 - 2
atom/browser/api/atom_api_web_contents.cc

@@ -1327,7 +1327,7 @@ void WebContents::StartDrag(const mate::Dictionary& item,
 
   // Error checking.
   if (icon.IsEmpty()) {
-    args->ThrowError("icon must be set");
+    args->ThrowError("Must specify non-empty 'icon' option");
     return;
   }
 
@@ -1337,7 +1337,7 @@ void WebContents::StartDrag(const mate::Dictionary& item,
         base::MessageLoop::current());
     DragFileItems(files, icon->image(), web_contents()->GetNativeView());
   } else {
-    args->ThrowError("There is nothing to drag");
+    args->ThrowError("Must specify either 'file' or 'files' option");
   }
 }
 

+ 16 - 0
spec/api-web-contents-spec.js

@@ -285,4 +285,20 @@ describe('webContents module', function () {
     })
     w.webContents.inspectElement(10, 10)
   })
+
+  describe('startDrag({file, icon})', () => {
+    it('throws errors for a missing file or a missing/empty icon', () => {
+      assert.throws(() => {
+        w.webContents.startDrag({icon: path.join(__dirname, 'fixtures', 'assets', 'logo.png')})
+      }, /Must specify either 'file' or 'files' option/)
+
+      assert.throws(() => {
+        w.webContents.startDrag({file: __filename, icon: __filename})
+      }, /Must specify non-empty 'icon' option/)
+
+      assert.throws(() => {
+        w.webContents.startDrag({file: __filename})
+      }, /Must specify non-empty 'icon' option/)
+    })
+  })
 })