diff --git a/entity_browser.libraries.yml b/entity_browser.libraries.yml
index d267052..29772da 100644
--- a/entity_browser.libraries.yml
+++ b/entity_browser.libraries.yml
@@ -27,6 +27,7 @@ iframe_selection:
     js/entity_browser.iframe_selection.js: {}
   dependencies:
     - core/drupalSettings
+    - core/jquery
 
 entity_reference:
   version: VERSION
diff --git a/tests/modules/entity_browser_test/config/install/views.view.files_entity_browser.yml b/tests/modules/entity_browser_test/config/install/views.view.files_entity_browser.yml
index bf51ac3..9351d53 100644
--- a/tests/modules/entity_browser_test/config/install/views.view.files_entity_browser.yml
+++ b/tests/modules/entity_browser_test/config/install/views.view.files_entity_browser.yml
@@ -196,7 +196,46 @@ display:
           multi_type: separator
           separator: ', '
           field_api_classes: false
-      filters: {  }
+      filters:
+        filename:
+          id: filename
+          table: file_managed
+          field: filename
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: contains
+          value: ''
+          group: 1
+          exposed: true
+          expose:
+            operator_id: filename_op
+            label: Filename
+            description: ''
+            use_operator: false
+            operator: filename_op
+            identifier: filename
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: file
+          plugin_id: string
       sorts:
         created:
           id: created
@@ -222,8 +261,8 @@ display:
     cache_metadata:
       max-age: 0
       contexts:
-        - 'languages:language_content'
         - 'languages:language_interface'
+        - url
         - url.query_args
         - user.permissions
       tags: {  }
@@ -237,8 +276,8 @@ display:
     cache_metadata:
       max-age: 0
       contexts:
-        - 'languages:language_content'
         - 'languages:language_interface'
+        - url
         - url.query_args
         - user.permissions
       tags: {  }
diff --git a/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php b/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php
index c9ab59c..47357a4 100644
--- a/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php
+++ b/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php
@@ -36,7 +36,7 @@ abstract class EntityBrowserJavascriptTestBase extends JavascriptTestBase {
   /**
    * {@inheritdoc}
    */
-  public function setUp() {
+  protected function setUp() {
     parent::setUp();
 
     $this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
diff --git a/tests/src/FunctionalJavascript/EntityBrowserViewsWidgetTest.php b/tests/src/FunctionalJavascript/EntityBrowserViewsWidgetTest.php
new file mode 100644
index 0000000..9d23971
--- /dev/null
+++ b/tests/src/FunctionalJavascript/EntityBrowserViewsWidgetTest.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace Drupal\Tests\entity_browser\FunctionalJavascript;
+
+use Drupal\file\Entity\File;
+
+/**
+ * Entity Browser views widget tests.
+ *
+ * @group entity_browser
+ * @see \Drupal\entity_browser\Plugin\EntityBrowser\Widget\View
+ */
+class EntityBrowserViewsWidgetTest extends EntityBrowserJavascriptTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'node',
+    'views',
+    'entity_browser_test',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $user = $this->drupalCreateUser([
+      'access test_entity_browser_file entity browser pages',
+    ]);
+    $this->drupalLogin($user);
+  }
+
+  /**
+   * Tests Entity Browser views widget.
+   */
+  public function testViewsWidget() {
+    // Create a file so that our test View isn't empty.
+    file_unmanaged_copy(\Drupal::root() . '/core/misc/druplicon.png', 'public://example.jpg');
+    /** @var \Drupal\file\FileInterface $file */
+    $file = File::create([
+      'uri' => 'public://example.jpg',
+    ]);
+    $file->save();
+
+    // Visit a test entity browser page that defaults to using a View widget.
+    $this->drupalGet('/entity-browser/iframe/test_entity_browser_file');
+    $field = 'entity_browser_select[file:' . $file->id() . ']';
+
+    // Test exposed filters.
+    $this->assertSession()->pageTextContains('example.jpg');
+    $this->assertSession()->fieldExists($field);
+    $this->getSession()->getPage()->fillField('filename', 'llama');
+    $this->getSession()->getPage()->pressButton('Apply');
+    $this->waitForAjaxToFinish();
+    $this->assertSession()->fieldNotExists($field);
+    $this->assertSession()->pageTextNotContains('example.jpg');
+    $this->getSession()->getPage()->fillField('filename', 'example');
+    $this->getSession()->getPage()->pressButton('Apply');
+    $this->waitForAjaxToFinish();
+    $this->assertSession()->pageTextContains('example.jpg');
+    $this->assertSession()->fieldExists($field);
+
+    // Test selection.
+    $this->submitForm([
+      $field => 1,
+    ], t('Select entities'));
+    $this->assertSession()->pageTextContains($file->getFilename());
+  }
+
+}
diff --git a/tests/src/FunctionalJavascript/PluginsTest.php b/tests/src/FunctionalJavascript/PluginsTest.php
index 3fe230a..297db20 100644
--- a/tests/src/FunctionalJavascript/PluginsTest.php
+++ b/tests/src/FunctionalJavascript/PluginsTest.php
@@ -78,6 +78,15 @@ class PluginsTest extends EntityBrowserJavascriptTestBase {
     // Tests view widget with drop down widget selector.
     $this->getEntityBrowser('test_entity_browser_file', 'iframe', 'drop_down', 'no_display');
 
+    // DropDown widget selector does not work with exposed view filter. This is
+    // a known bug and we need to remove exposed filters from the view until
+    // that is fixed.
+    /** @var \Drupal\views\Entity\View $view */
+    $view = $this->container->get('entity_type.manager')->getStorage('view')->load('files_entity_browser');
+    $display = &$view->getDisplay('default');
+    $display['display_options']['filters'] = [];
+    $view->save();
+
     $this->drupalGet('node/add/article');
     $this->getSession()->getPage()->clickLink('Select entities');
     $this->getSession()->switchToIFrame('entity_browser_iframe_test_entity_browser_file');
