diff --git a/includes/handlers.inc b/includes/handlers.inc
index ebdec34..ddfab3c 100644
--- a/includes/handlers.inc
+++ b/includes/handlers.inc
@@ -6,8 +6,6 @@
  */
 
 use Drupal\Core\Database\Database;
-use Drupal\views\View;
-use Drupal\views\Plugin\views\join\JoinPluginBase;
 use Drupal\views\Plugin\Type\ViewsPluginManager;
 use Drupal\Component\Plugin\Exception\PluginException;
 
diff --git a/lib/Drupal/views/Analyzer.php b/lib/Drupal/views/Analyzer.php
index 67e8920..d8611c4 100644
--- a/lib/Drupal/views/Analyzer.php
+++ b/lib/Drupal/views/Analyzer.php
@@ -39,16 +39,6 @@ function __construct(View $view = NULL) {
   }
 
   /**
-   * Gets the view which is analyzed by this analyzer.
-   *
-   * @return Drupal\views\View.
-   *   The view to analyze.
-   */
-  public function getView() {
-    return $this->view;
-  }
-
-  /**
    * Sets the view which is analyzed by this analyzer.
    *
    * @param Drupal\views\View
diff --git a/lib/Drupal/views/Tests/BasicTest.php b/lib/Drupal/views/Tests/BasicTest.php
index 0eaa078..9a0080a 100644
--- a/lib/Drupal/views/Tests/BasicTest.php
+++ b/lib/Drupal/views/Tests/BasicTest.php
@@ -30,7 +30,7 @@ protected function setUp() {
    * Tests a trivial result set.
    */
   public function testSimpleResultSet() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Execute the view.
     $this->executeView($view);
@@ -47,7 +47,7 @@ public function testSimpleResultSet() {
    * Tests filtering of the result set.
    */
   public function testSimpleFiltering() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a filter.
     $view->display['default']->handler->overrideOption('filters', array(
@@ -105,7 +105,7 @@ public function testSimpleFiltering() {
    * Tests simple argument.
    */
   public function testSimpleArgument() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a argument.
     $view->display['default']->handler->overrideOption('arguments', array(
@@ -174,7 +174,7 @@ public function testSimpleArgument() {
     ));
 
     // Test "show all" if no argument is present.
-    $view = $saved_view;
+    $view = $saved_view->cloneView();
     $this->executeView($view);
 
     // Build the expected result.
diff --git a/lib/Drupal/views/Tests/Comment/ArgumentUserUIDTest.php b/lib/Drupal/views/Tests/Comment/ArgumentUserUIDTest.php
index 83aa6d9..8410b5d 100644
--- a/lib/Drupal/views/Tests/Comment/ArgumentUserUIDTest.php
+++ b/lib/Drupal/views/Tests/Comment/ArgumentUserUIDTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Comment;
 
-use Drupal\views\View;
-
 /**
  * Tests the argument_comment_user_uid handler.
  */
@@ -23,9 +21,7 @@ public static function getInfo() {
   }
 
   function testCommentUserUIDTest() {
-    $view = $this->view_comment_user_uid();
-
-    $this->executeView($view, array($this->account->uid));
+    $this->executeView($this->view, array($this->account->uid));
     $result_set = array(
       array(
         'nid' => $this->node_user_posted->nid,
@@ -35,7 +31,7 @@ function testCommentUserUIDTest() {
       ),
     );
     $this->column_map = array('nid' => 'nid');
-    $this->assertIdenticalResultset($view, $result_set, $this->column_map);
+    $this->assertIdenticalResultset($this->view, $result_set, $this->column_map);
   }
 
 }
diff --git a/lib/Drupal/views/Tests/Comment/CommentTestBase.php b/lib/Drupal/views/Tests/Comment/CommentTestBase.php
index 7ef2b75..a855afe 100644
--- a/lib/Drupal/views/Tests/Comment/CommentTestBase.php
+++ b/lib/Drupal/views/Tests/Comment/CommentTestBase.php
@@ -8,7 +8,6 @@
 namespace Drupal\views\Tests\Comment;
 
 use Drupal\views\Tests\ViewTestBase;
-use Drupal\views\View;
 
 /**
  * Tests the argument_comment_user_uid handler.
@@ -43,42 +42,11 @@ function setUp() {
     entity_create('comment', $comment)->save();
   }
 
-  function view_comment_user_uid() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_comment_user_uid';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'test_comment_user_uid';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['query']['options']['query_comment'] = FALSE;
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    /* Field: Content: nid */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    /* Contextual filter: Content: User posted or commented */
-    $handler->display->display_options['arguments']['uid_touch']['id'] = 'uid_touch';
-    $handler->display->display_options['arguments']['uid_touch']['table'] = 'node';
-    $handler->display->display_options['arguments']['uid_touch']['field'] = 'uid_touch';
-    $handler->display->display_options['arguments']['uid_touch']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['uid_touch']['default_argument_skip_url'] = 0;
-    $handler->display->display_options['arguments']['uid_touch']['summary']['number_of_records'] = '0';
-    $handler->display->display_options['arguments']['uid_touch']['summary']['format'] = 'default_summary';
-    $handler->display->display_options['arguments']['uid_touch']['summary_options']['items_per_page'] = '25';
-
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_comment_user_uid');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/Comment/FilterUserUIDTest.php b/lib/Drupal/views/Tests/Comment/FilterUserUIDTest.php
index e3bea5f..00ba08c 100644
--- a/lib/Drupal/views/Tests/Comment/FilterUserUIDTest.php
+++ b/lib/Drupal/views/Tests/Comment/FilterUserUIDTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Comment;
 
-use Drupal\views\View;
-
 /**
  * Tests the filter_comment_user_uid handler.
  *
@@ -24,14 +22,8 @@ public static function getInfo() {
     );
   }
 
-  /**
-   * Override the view from the argument test case to remove the argument and
-   * add filter with the uid as the value.
-   */
-  function view_comment_user_uid() {
-    $view = parent::view_comment_user_uid();
-    // Remove the argument.
-    $view->setItem('default', 'argument', 'uid_touch', NULL);
+  function testCommentUserUIDTest() {
+    $this->view->setItem('default', 'argument', 'uid_touch', NULL);
 
     $options = array(
       'id' => 'uid_touch',
@@ -39,15 +31,8 @@ function view_comment_user_uid() {
       'field' => 'uid_touch',
       'value' => array($this->loggedInUser->uid),
     );
-    $view->addItem('default', 'filter', 'node', 'uid_touch', $options);
-
-    return $view;
-  }
-
-  function testCommentUserUIDTest() {
-    $view = $this->view_comment_user_uid();
-
-    $this->executeView($view, array($this->account->uid));
+    $this->view->addItem('default', 'filter', 'node', 'uid_touch', $options);
+    $this->executeView($this->view, array($this->account->uid));
     $result_set = array(
       array(
         'nid' => $this->node_user_posted->nid,
@@ -57,7 +42,7 @@ function testCommentUserUIDTest() {
       ),
     );
     $this->column_map = array('nid' => 'nid');
-    $this->assertIdenticalResultset($view, $result_set, $this->column_map);
+    $this->assertIdenticalResultset($this->view, $result_set, $this->column_map);
   }
 
 }
diff --git a/lib/Drupal/views/Tests/Field/HandlerFieldFieldTest.php b/lib/Drupal/views/Tests/Field/HandlerFieldFieldTest.php
index 32de413..eec576d 100644
--- a/lib/Drupal/views/Tests/Field/HandlerFieldFieldTest.php
+++ b/lib/Drupal/views/Tests/Field/HandlerFieldFieldTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Field;
 
-use Drupal\views\View;
-
 /**
  * Tests the field_field handler.
  * @TODO
@@ -61,6 +59,19 @@ protected function setUp() {
 
       $this->nodes[$i] = $this->drupalCreateNode($edit);
     }
+
+    foreach ($this->fields as $key => $field) {
+      $this->view->display_handler->display->display_options['fields'][$field['field_name']]['id'] = $field['field_name'];
+      $this->view->display_handler->display->display_options['fields'][$field['field_name']]['table'] = 'field_data_' . $field['field_name'];
+      $this->view->display_handler->display->display_options['fields'][$field['field_name']]['field'] = $field['field_name'];
+    }
+  }
+
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_view_fieldapi');
   }
 
   public function testFieldRender() {
@@ -70,7 +81,7 @@ public function testFieldRender() {
   }
 
   public function _testSimpleFieldRender() {
-    $view = $this->getFieldView();
+    $view = $this->getView();
     $this->executeView($view);
 
     // Tests that the rendered fields match the actual value of the fields.
@@ -88,9 +99,9 @@ public function _testSimpleFieldRender() {
    * Tests that fields with formatters runs as expected.
    */
   public function _testFormatterSimpleFieldRender() {
-    $view = $this->getFieldView();
-    $view->display['default']->display_options['fields'][$this->fields[0]['field_name']]['type'] = 'text_trimmed';
-    $view->display['default']->display_options['fields'][$this->fields[0]['field_name']]['settings'] = array(
+    $view = $this->getView();
+    $view->display['default']->handler->options['fields'][$this->fields[0]['field_name']]['type'] = 'text_trimmed';
+    $view->display['default']->handler->options['fields'][$this->fields[0]['field_name']]['settings'] = array(
       'trim_length' => 3,
     );
     $this->executeView($view);
@@ -104,11 +115,11 @@ public function _testFormatterSimpleFieldRender() {
   }
 
   public function _testMultipleFieldRender() {
-    $view = $this->getFieldView();
+    $view = $this->getView();
 
     // Test delta limit.
-    $view->display['default']->display_options['fields'][$this->fields[3]['field_name']]['group_rows'] = TRUE;
-    $view->display['default']->display_options['fields'][$this->fields[3]['field_name']]['delta_limit'] = 3;
+    $view->display['default']->handler->options['fields'][$this->fields[3]['field_name']]['group_rows'] = TRUE;
+    $view->display['default']->handler->options['fields'][$this->fields[3]['field_name']]['delta_limit'] = 3;
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
@@ -201,36 +212,4 @@ public function _testMultipleFieldRender() {
     }
   }
 
-  protected function getFieldView() {
-    $view = new View(array(), 'view');
-    $view->name = 'view_fieldapi';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'view_fieldapi';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    foreach ($this->fields as $key => $field) {
-      $handler->display->display_options['fields'][$field['field_name']]['id'] = $field['field_name'];
-      $handler->display->display_options['fields'][$field['field_name']]['table'] = 'field_data_' . $field['field_name'];
-      $handler->display->display_options['fields'][$field['field_name']]['field'] = $field['field_name'];
-    }
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Handler/AreaTextTest.php b/lib/Drupal/views/Tests/Handler/AreaTextTest.php
index 07f99fb..477cfe8 100644
--- a/lib/Drupal/views/Tests/Handler/AreaTextTest.php
+++ b/lib/Drupal/views/Tests/Handler/AreaTextTest.php
@@ -29,7 +29,7 @@ protected function setUp() {
   }
 
   public function testAreaText() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // add a text header
     $string = $this->randomName();
diff --git a/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php b/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
index fc17536..6225b7b 100644
--- a/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
+++ b/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
@@ -35,7 +35,7 @@ function viewsData() {
 
   public function testAreaText() {
     // Test validation
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a null argument.
     $string = $this->randomString();
@@ -60,7 +60,7 @@ public function testAreaText() {
     $this->assertTrue($view->argument['null']->validateArgument(NULL), 'must_not_be returns TRUE, if there is no argument');
 
     // Test execution.
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a argument, which has null as handler.
     $string = $this->randomString();
diff --git a/lib/Drupal/views/Tests/Handler/ArgumentStringTest.php b/lib/Drupal/views/Tests/Handler/ArgumentStringTest.php
index 8f6d072..d2a2e55 100644
--- a/lib/Drupal/views/Tests/Handler/ArgumentStringTest.php
+++ b/lib/Drupal/views/Tests/Handler/ArgumentStringTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Handler;
 
-use Drupal\views\View;
-
 /**
  * Tests the core Drupal\views\Plugin\views\argument\String handler.
  */
@@ -37,8 +35,7 @@ function testGlossary() {
       }
     }
 
-    $view = $this->viewGlossary();
-    $view->initDisplay();
+    $view = $this->createViewFromConfig('test_glossary');
     $this->executeView($view);
 
     $count_field = 'nid';
@@ -55,49 +52,4 @@ function testGlossary() {
     }
   }
 
-  /**
-   * Provide a test view for testGlossary.
-   *
-   * @see testGlossary
-   * @return Drupal\views\View
-   */
-  function viewGlossary() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_glossary';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'test_glossary';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['label'] = '';
-    /* Contextual filter: Content: Title */
-    $handler->display->display_options['arguments']['title']['id'] = 'title';
-    $handler->display->display_options['arguments']['title']['table'] = 'node';
-    $handler->display->display_options['arguments']['title']['field'] = 'title';
-    $handler->display->display_options['arguments']['title']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['title']['summary']['number_of_records'] = '0';
-    $handler->display->display_options['arguments']['title']['summary']['format'] = 'default_summary';
-    $handler->display->display_options['arguments']['title']['summary_options']['items_per_page'] = '25';
-    $handler->display->display_options['arguments']['title']['glossary'] = TRUE;
-    $handler->display->display_options['arguments']['title']['limit'] = '1';
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php b/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
index 6e2f691..5d0b2f9 100644
--- a/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
@@ -41,7 +41,7 @@ function viewsData() {
   }
 
   public function testFieldBoolean() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'age' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FieldCounterTest.php b/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
index 63969dc..a400752 100644
--- a/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
@@ -27,7 +27,7 @@ protected function setUp() {
   }
 
   function testSimple() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $view->display['default']->handler->overrideOption('fields', array(
       'counter' => array(
         'id' => 'counter',
@@ -49,7 +49,7 @@ function testSimple() {
     $this->assertEqual(3, $view->style_plugin->rendered_fields[2]['counter']);
     $view->destroy();
 
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $rand_start = rand(5, 10);
     $view->display['default']->handler->overrideOption('fields', array(
       'counter' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FieldCustomTest.php b/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
index e3ae177..e3e51e5 100644
--- a/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
@@ -33,7 +33,7 @@ function viewsData() {
   }
 
   public function testFieldCustom() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Alter the text of the field to a random string.
     $random = $this->randomName();
diff --git a/lib/Drupal/views/Tests/Handler/FieldDateTest.php b/lib/Drupal/views/Tests/Handler/FieldDateTest.php
index 844c18b..e18e91a 100644
--- a/lib/Drupal/views/Tests/Handler/FieldDateTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldDateTest.php
@@ -33,7 +33,7 @@ function viewsData() {
   }
 
   public function testFieldDate() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'created' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php b/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
index 9db396d..0f7cfcc 100644
--- a/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
@@ -46,7 +46,7 @@ function viewsData() {
   }
 
   public function testFieldFileSize() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'age' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FieldTest.php b/lib/Drupal/views/Tests/Handler/FieldTest.php
index a09ee74..c5cf037 100644
--- a/lib/Drupal/views/Tests/Handler/FieldTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldTest.php
@@ -43,7 +43,7 @@ function testEmpty() {
    * This tests alters the result to get easier and less coupled results.
    */
   function _testHideIfEmpty() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $view->initDisplay();
     $this->executeView($view);
 
@@ -261,7 +261,7 @@ function _testHideIfEmpty() {
    * Tests the usage of the empty text.
    */
   function _testEmptyText() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $view->initDisplay();
     $this->executeView($view);
 
@@ -298,7 +298,7 @@ function _testEmptyText() {
    * Tests views_handler_field::is_value_empty().
    */
   function testIsValueEmpty() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $view->initDisplay();
     $view->initHandlers();
     $field = $view->field['name'];
diff --git a/lib/Drupal/views/Tests/Handler/FieldUrlTest.php b/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
index b7c40e4..e8a7320 100644
--- a/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
@@ -33,7 +33,7 @@ function viewsData() {
   }
 
   public function testFieldUrl() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'name' => array(
@@ -50,8 +50,8 @@ public function testFieldUrl() {
     $this->assertEqual('John', $view->field['name']->advanced_render($view->result[0]));
 
     // Make the url a link.
-    $view->delete();
-    $view = $this->getBasicView();
+    $view->destroy();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'name' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FieldXssTest.php b/lib/Drupal/views/Tests/Handler/FieldXssTest.php
index 4e7ad93..dc3ab27 100644
--- a/lib/Drupal/views/Tests/Handler/FieldXssTest.php
+++ b/lib/Drupal/views/Tests/Handler/FieldXssTest.php
@@ -47,7 +47,7 @@ function viewsData() {
   }
 
   public function testFieldXss() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('fields', array(
       'name' => array(
diff --git a/lib/Drupal/views/Tests/Handler/FilterCombineTest.php b/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
index 1d5b035..0c122a7 100644
--- a/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
@@ -35,7 +35,6 @@ function setUp() {
 
   protected function getBasicView() {
     $view = parent::getBasicView();
-    $fields = $view->display['default']->handler->options['fields'];
     $view->display['default']->display_options['fields']['job'] = array(
       'id' => 'job',
       'table' => 'views_test',
@@ -46,7 +45,7 @@ protected function getBasicView() {
   }
 
   public function testFilterCombineContains() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering.
     $view->display['default']->handler->overrideOption('filters', array(
diff --git a/lib/Drupal/views/Tests/Handler/FilterDateTest.php b/lib/Drupal/views/Tests/Handler/FilterDateTest.php
index 1ab7cfb..226bce3 100644
--- a/lib/Drupal/views/Tests/Handler/FilterDateTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterDateTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Handler;
 
-use Drupal\views\View;
-
 /**
  * Tests the core Drupal\views\Plugin\views\filter\Date handler.
  */
@@ -47,9 +45,10 @@ function setUp() {
    * Test the general offset functionality.
    */
   function testOffset() {
-    $view = $this->views_test_offset();
+    $saved_view = $this->createViewFromConfig('test_filter_date_between');
+
     // Test offset for simple operator.
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = '>';
     $view->filter['created']->value['type'] = 'offset';
@@ -59,10 +58,9 @@ function testOffset() {
       array('nid' => $this->nodes[3]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
 
     // Test offset for between operator.
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = 'between';
     $view->filter['created']->value['type'] = 'offset';
@@ -73,17 +71,16 @@ function testOffset() {
       array('nid' => $this->nodes[3]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
   }
 
-
   /**
    * Tests the filter operator between/not between.
    */
   function testBetween() {
+    $saved_view = $this->createViewFromConfig('test_filter_date_between');
+
     // Test between with min and max.
-    $view = $this->views_test_between();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = 'between';
     $view->filter['created']->value['min'] = format_date(150000, 'custom', 'Y-m-d H:s');
@@ -93,11 +90,9 @@ function testBetween() {
       array('nid' => $this->nodes[1]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
 
     // Test between with just max.
-    $view = $this->views_test_between();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = 'between';
     $view->filter['created']->value['max'] = format_date(250000, 'custom', 'Y-m-d H:s');
@@ -107,11 +102,9 @@ function testBetween() {
       array('nid' => $this->nodes[1]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
 
     // Test not between with min and max.
-    $view = $this->views_test_between();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = 'not between';
     $view->filter['created']->value['min'] = format_date(150000, 'custom', 'Y-m-d H:s');
@@ -123,11 +116,9 @@ function testBetween() {
       array('nid' => $this->nodes[3]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
 
     // Test not between with just max.
-    $view = $this->views_test_between();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
     $view->initHandlers();
     $view->filter['created']->operator = 'not between';
     $view->filter['created']->value['max'] = format_date(150000, 'custom', 'Y-m-d H:s');
@@ -138,18 +129,16 @@ function testBetween() {
       array('nid' => $this->nodes[3]->nid),
     );
     $this->assertIdenticalResultset($view, $expected_result, $this->map);
-    $view->destroy();
   }
 
   /**
    * Make sure the validation callbacks works.
    */
   function testUiValidation() {
-    $view = $this->views_test_between();
+    $view = $this->createViewFromConfig('test_filter_date_between');
     $view->save();
 
-    $admin_user =   $this->drupalCreateUser(array('administer views', 'administer site configuration'));
-    $this->drupalLogin($admin_user);
+    $this->drupalLogin($this->drupalCreateUser(array('administer views', 'administer site configuration')));
     menu_router_rebuild();
     $this->drupalGet('admin/structure/views/view/test_filter_date_between/edit');
     $this->drupalGet('admin/structure/views/nojs/config-item/test_filter_date_between/default/filter/created');
@@ -161,43 +150,4 @@ function testUiValidation() {
     $this->assertText(t('Invalid date format.'), 'Make sure that validation is runned and the invalidate date format is identified.');
   }
 
-  function views_test_between() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_filter_date_between';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->human_name = '';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-    $view->uuid = NULL;
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['query']['options']['query_comment'] = FALSE;
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Nid */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    /* Filter criterion: Content: Post date */
-    $handler->display->display_options['filters']['created']['id'] = 'created';
-    $handler->display->display_options['filters']['created']['table'] = 'node';
-    $handler->display->display_options['filters']['created']['field'] = 'created';
-
-    return $view;
-  }
-
-  function views_test_offset() {
-    $view = $this->views_test_between();
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php b/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
index a06275a..ef3556a 100644
--- a/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
@@ -38,7 +38,7 @@ function viewsData() {
   }
 
   function testEqual() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -80,7 +80,7 @@ public function testEqualGroupedExposed() {
   }
 
   function testNotEqual() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
diff --git a/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php b/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
index d988a95..a8ea19c 100644
--- a/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
@@ -34,7 +34,7 @@ function viewsData() {
   }
 
   public function testFilterInOperatorSimple() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a in_operator ordering.
     $view->display['default']->handler->overrideOption('filters', array(
@@ -66,8 +66,7 @@ public function testFilterInOperatorSimple() {
       'views_test_age' => 'age',
     ));
 
-    $view->delete();
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a in_operator ordering.
     $view->display['default']->handler->overrideOption('filters', array(
diff --git a/lib/Drupal/views/Tests/Handler/FilterNumericTest.php b/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
index 19aa80b..6a50fb4 100644
--- a/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
@@ -42,7 +42,7 @@ function viewsData() {
   }
 
   public function testFilterNumericSimple() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -86,7 +86,7 @@ public function testFilterNumericExposedGroupedSimple() {
   }
 
   public function testFilterNumericBetween() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -121,8 +121,8 @@ public function testFilterNumericBetween() {
     $this->assertIdenticalResultset($view, $resultset, $this->column_map);
 
     // test not between
-    $view->delete();
-    $view = $this->getBasicView();
+    $view->destroy();
+    $view = $this->getView();
 
       // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -215,7 +215,7 @@ public function testFilterNumericExposedGroupedNotBetween() {
 
 
   public function testFilterNumericEmpty() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -233,8 +233,8 @@ public function testFilterNumericEmpty() {
     );
     $this->assertIdenticalResultset($view, $resultset, $this->column_map);
 
-    $view->delete();
-    $view = $this->getBasicView();
+    $view->destroy();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -328,7 +328,7 @@ public function testFilterNumericExposedGroupedNotEmpty() {
 
 
   public function testAllowEmpty() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     $view->display['default']->handler->overrideOption('filters', array(
       'id' => array(
@@ -345,7 +345,6 @@ public function testAllowEmpty() {
       ),
     ));
 
-    $view->setDisplay('default');
     $view->initHandlers();
 
     $id_operators = $view->filter['id']->operators();
diff --git a/lib/Drupal/views/Tests/Handler/FilterStringTest.php b/lib/Drupal/views/Tests/Handler/FilterStringTest.php
index b7a1c1c..6099a8c 100644
--- a/lib/Drupal/views/Tests/Handler/FilterStringTest.php
+++ b/lib/Drupal/views/Tests/Handler/FilterStringTest.php
@@ -79,7 +79,7 @@ protected function getBasicView() {
   }
 
   function testFilterStringEqual() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -123,7 +123,7 @@ function testFilterStringGroupedExposedEqual() {
   }
 
   function testFilterStringNotEqual() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -186,7 +186,7 @@ function testFilterStringGroupedExposedNotEqual() {
   }
 
   function testFilterStringContains() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -232,7 +232,7 @@ function testFilterStringGroupedExposedContains() {
 
 
   function testFilterStringWord() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -258,7 +258,7 @@ function testFilterStringWord() {
     $this->assertIdenticalResultset($view, $resultset, $this->column_map);
     $view->destroy();
 
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -323,7 +323,7 @@ function testFilterStringGroupedExposedWord() {
   }
 
   function testFilterStringStarts() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -366,7 +366,7 @@ function testFilterStringGroupedExposedStarts() {
   }
 
   function testFilterStringNotStarts() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -423,7 +423,7 @@ function testFilterStringGroupedExposedNotStarts() {
   }
 
   function testFilterStringEnds() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -472,7 +472,7 @@ function testFilterStringGroupedExposedEnds() {
   }
 
   function testFilterStringNotEnds() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -523,7 +523,7 @@ function testFilterStringGroupedExposedNotEnds() {
   }
 
   function testFilterStringNot() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -576,7 +576,7 @@ function testFilterStringGroupedExposedNot() {
   }
 
   function testFilterStringShorter() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -624,7 +624,7 @@ function testFilterStringGroupedExposedShorter() {
   }
 
   function testFilterStringLonger() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
@@ -667,7 +667,7 @@ function testFilterStringGroupedExposedLonger() {
 
 
   function testFilterStringEmpty() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the filtering
     $view->display['default']->handler->overrideOption('filters', array(
diff --git a/lib/Drupal/views/Tests/Handler/SortDateTest.php b/lib/Drupal/views/Tests/Handler/SortDateTest.php
index fd131ea..1a6e6a7 100644
--- a/lib/Drupal/views/Tests/Handler/SortDateTest.php
+++ b/lib/Drupal/views/Tests/Handler/SortDateTest.php
@@ -154,7 +154,7 @@ protected function expectedResultSet($granularity, $reverse = TRUE) {
   public function testDateOrdering() {
     foreach (array('second', 'minute', 'hour', 'day', 'month', 'year') as $granularity) {
       foreach (array(FALSE, TRUE) as $reverse) {
-        $view = $this->getBasicView();
+        $view = $this->getView();
 
         // Change the fields.
         $view->display['default']->handler->overrideOption('fields', array(
diff --git a/lib/Drupal/views/Tests/Handler/SortRandomTest.php b/lib/Drupal/views/Tests/Handler/SortRandomTest.php
index 3b89fb9..3cf670c 100644
--- a/lib/Drupal/views/Tests/Handler/SortRandomTest.php
+++ b/lib/Drupal/views/Tests/Handler/SortRandomTest.php
@@ -46,7 +46,7 @@ protected function dataSet() {
    * Return a basic view with random ordering.
    */
   protected function getBasicRandomView() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Add a random ordering.
     $view->display['default']->handler->overrideOption('sorts', array(
@@ -67,7 +67,7 @@ protected function getBasicRandomView() {
    */
   public function testRandomOrdering() {
     // Execute a basic view first.
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $this->executeView($view);
 
     // Verify the result.
diff --git a/lib/Drupal/views/Tests/Handler/SortTest.php b/lib/Drupal/views/Tests/Handler/SortTest.php
index 5860495..5f47a0d 100644
--- a/lib/Drupal/views/Tests/Handler/SortTest.php
+++ b/lib/Drupal/views/Tests/Handler/SortTest.php
@@ -30,7 +30,7 @@ protected function setUp() {
    * Tests numeric ordering of the result set.
    */
   public function testNumericOrdering() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the ordering
     $view->display['default']->handler->overrideOption('sorts', array(
@@ -53,7 +53,7 @@ public function testNumericOrdering() {
       'views_test_age' => 'age',
     ));
 
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Reverse the ordering
     $view->display['default']->handler->overrideOption('sorts', array(
@@ -81,7 +81,7 @@ public function testNumericOrdering() {
    * Tests string ordering of the result set.
    */
   public function testStringOrdering() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Change the ordering
     $view->display['default']->handler->overrideOption('sorts', array(
@@ -104,7 +104,7 @@ public function testStringOrdering() {
       'views_test_age' => 'age',
     ));
 
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // Reverse the ordering
     $view->display['default']->handler->overrideOption('sorts', array(
diff --git a/lib/Drupal/views/Tests/Language/ArgumentLanguage.php b/lib/Drupal/views/Tests/Language/ArgumentLanguage.php
index f82b0d1..a5abb7b 100644
--- a/lib/Drupal/views/Tests/Language/ArgumentLanguage.php
+++ b/lib/Drupal/views/Tests/Language/ArgumentLanguage.php
@@ -26,7 +26,7 @@ public static function getInfo() {
 
   public function testFilter() {
     foreach (array('en' => 'John', 'xx-lolspeak' => 'George') as $langcode => $name) {
-      $view = $this->getBasicView();
+      $view = $this->getView();
       $view->display['default']->handler->overrideOption('arguments', array(
         'langcode' => array(
           'id' => 'langcode',
diff --git a/lib/Drupal/views/Tests/Language/FieldLanguage.php b/lib/Drupal/views/Tests/Language/FieldLanguage.php
index e60438c..52f8624 100644
--- a/lib/Drupal/views/Tests/Language/FieldLanguage.php
+++ b/lib/Drupal/views/Tests/Language/FieldLanguage.php
@@ -25,7 +25,7 @@ public static function getInfo() {
   }
 
   public function testField() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $view->display['default']->handler->overrideOption('fields', array(
       'langcode' => array(
         'id' => 'langcode',
diff --git a/lib/Drupal/views/Tests/Language/FilterLanguage.php b/lib/Drupal/views/Tests/Language/FilterLanguage.php
index 7717e1f..f019ffe 100644
--- a/lib/Drupal/views/Tests/Language/FilterLanguage.php
+++ b/lib/Drupal/views/Tests/Language/FilterLanguage.php
@@ -26,7 +26,7 @@ public static function getInfo() {
 
   public function testFilter() {
     foreach (array('en' => 'John', 'xx-lolspeak' => 'George') as $langcode => $name) {
-      $view = $this->getBasicView();
+      $view = $this->getView();
       $view->display['default']->handler->overrideOption('filters', array(
         'langcode' => array(
           'id' => 'langcode',
diff --git a/lib/Drupal/views/Tests/Plugin/AccessTest.php b/lib/Drupal/views/Tests/Plugin/AccessTest.php
index 5950a5d..71d4d19 100644
--- a/lib/Drupal/views/Tests/Plugin/AccessTest.php
+++ b/lib/Drupal/views/Tests/Plugin/AccessTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
-
 /**
  * Basic test for pluggable access.
  */
@@ -42,9 +40,7 @@ protected function setUp() {
    * Tests none access plugin.
    */
   function testAccessNone() {
-    $view = $this->view_access_none();
-
-    $view->setDisplay('default');
+    $view = $this->createViewFromConfig('test_access_none');
 
     $this->assertTrue($view->display_handler->access($this->admin_user), t('Admin-Account should be able to access the view everytime'));
     $this->assertTrue($view->display_handler->access($this->web_user));
@@ -55,9 +51,8 @@ function testAccessNone() {
    * Tests perm access plugin.
    */
   function testAccessPerm() {
-    $view = $this->view_access_perm();
+    $view = $this->createViewFromConfig('test_access_perm');
 
-    $view->setDisplay('default');
     $access_plugin = $view->display_handler->getPlugin('access');
 
     $this->assertTrue($view->display_handler->access($this->admin_user), t('Admin-Account should be able to access the view everytime'));
@@ -69,9 +64,12 @@ function testAccessPerm() {
    * Tests role access plugin.
    */
   function testAccessRole() {
-    $view = $this->view_access_role();
+    $view = $this->createViewFromConfig('test_access_role');
+
+    $view->display['default']->handler->options['access']['role'] = array(
+      $this->normal_role => $this->normal_role,
+    );
 
-    $view->setDisplay('default');
     $access_plugin = $view->display_handler->getPlugin('access');
 
     $this->assertTrue($view->display_handler->access($this->admin_user), t('Admin-Account should be able to access the view everytime'));
@@ -87,9 +85,8 @@ function testAccessRole() {
    * Tests static access check.
    */
   function testStaticAccessPlugin() {
-    $view = $this->view_access_static();
+    $view = $this->createViewFromConfig('test_access_static');
 
-    $view->setDisplay('default');
     $access_plugin = $view->display_handler->getPlugin('access');
 
     $this->assertFalse($access_plugin->access($this->normal_user));
@@ -99,13 +96,13 @@ function testStaticAccessPlugin() {
 
     // FALSE comes from hook_menu caching.
     $expected_hook_menu = array(
-      'views_test_test_static_access_callback', array(FALSE)
+      'views_test_data_test_static_access_callback', array(FALSE)
     );
     $hook_menu = $view->executeHookMenu('page_1');
     $this->assertEqual($expected_hook_menu, $hook_menu['test_access_static']['access arguments'][0]);
 
     $expected_hook_menu = array(
-      'views_test_test_static_access_callback', array(TRUE)
+      'views_test_data_test_static_access_callback', array(TRUE)
     );
     $this->assertTrue(views_access($expected_hook_menu));
   }
@@ -114,13 +111,12 @@ function testStaticAccessPlugin() {
    * Tests dynamic access plugin.
    */
   function testDynamicAccessPlugin() {
-    $view = $this->view_access_dynamic();
+    $view = $this->createViewFromConfig('test_access_dynamic');
     $argument1 = $this->randomName();
     $argument2 = $this->randomName();
     variable_set('test_dynamic_access_argument1', $argument1);
     variable_set('test_dynamic_access_argument2', $argument2);
 
-    $view->setDisplay('default');
     $access_plugin = $view->display_handler->getPlugin('access');
 
     $this->assertFalse($access_plugin->access($this->normal_user));
@@ -133,140 +129,15 @@ function testDynamicAccessPlugin() {
 
     // FALSE comes from hook_menu caching.
     $expected_hook_menu = array(
-      'views_test_test_dynamic_access_callback', array(FALSE, 1, 2)
+      'views_test_data_test_dynamic_access_callback', array(FALSE, 1, 2)
     );
     $hook_menu = $view->executeHookMenu('page_1');
     $this->assertEqual($expected_hook_menu, $hook_menu['test_access_dynamic']['access arguments'][0]);
 
     $expected_hook_menu = array(
-      'views_test_test_dynamic_access_callback', array(TRUE, 1, 2)
+      'views_test_data_test_dynamic_access_callback', array(TRUE, 1, 2)
     );
     $this->assertTrue(views_access($expected_hook_menu, $argument1, $argument2));
   }
 
-  function view_access_none() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_access_none';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    return $view;
-  }
-
-  function view_access_perm() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_access_perm';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['access']['perm'] = 'views_test test permission';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    return $view;
-  }
-
-  function view_access_role() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_access_role';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'role';
-    $handler->display->display_options['access']['role'] = array(
-      $this->normal_role => $this->normal_role,
-    );
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    return $view;
-  }
-
-  function view_access_dynamic() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_access_dynamic';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'test_dynamic';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    $handler = $view->newDisplay('page', 'Page', 'page_1');
-    $handler->display->display_options['path'] = 'test_access_dynamic';
-
-    return $view;
-  }
-
-  function view_access_static() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_access_static';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'test_static';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-
-    $handler = $view->newDisplay('page', 'Page', 'page_1');
-    $handler->display->display_options['path'] = 'test_access_static';
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php b/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
index a175407..b519707 100644
--- a/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
+++ b/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
-
 /**
  * Basic test for pluggable argument default.
  */
@@ -72,20 +70,15 @@ function testArgumentDefaultNoOptions() {
    * Tests fixed default argument.
    */
   function testArgumentDefaultFixed() {
-    $view = $this->view_argument_default_fixed();
-
-    $view->setDisplay('default');
+    $view = $this->getView();
     $view->preExecute();
     $view->initHandlers();
 
     $this->assertEqual($view->argument['null']->get_default_argument(), $this->random, 'Fixed argument should be used by default.');
 
-    $view->destroy();
-
     // Make sure that a normal argument provided is used
-    $view = $this->view_argument_default_fixed();
+    $view = $this->getView();
 
-    $view->setDisplay('default');
     $random_string = $this->randomString();
     $view->executeDisplay('default', array($random_string));
 
@@ -102,50 +95,12 @@ function testArgumentDefaultFixed() {
    */
   //function testArgumentDefaultNode() {}
 
-  function view_argument_default_fixed() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_argument_default_fixed';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['title']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['title']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['title']['link_to_node'] = 0;
-    /* Argument: Global: Null */
-    $handler->display->display_options['arguments']['null']['id'] = 'null';
-    $handler->display->display_options['arguments']['null']['table'] = 'views';
-    $handler->display->display_options['arguments']['null']['field'] = 'null';
-    $handler->display->display_options['arguments']['null']['default_action'] = 'default';
-    $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['null']['default_argument_options']['argument'] = $this->random;
-    $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
-
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    $view = $this->createViewFromConfig('test_argument_default_fixed');
+    $view->display['default']->handler->options['arguments']['null']['default_argument_options']['argument'] = $this->random;
     return $view;
   }
 
diff --git a/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php b/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
index 9fe68da..fca3dad 100644
--- a/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
+++ b/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
-
 /**
  * Tests Views argument validators.
  */
@@ -24,8 +22,9 @@ public static function getInfo() {
 
   function testArgumentValidatePhp() {
     $string = $this->randomName();
-    $view = $this->view_test_argument_validate_php($string);
-    $view->setDisplay('default');
+    $view = $this->createViewFromConfig('test_view_argument_validate_php');
+    $view->display['default']->handler->options['arguments']['null']['validate_options']['code'] = 'return $argument == \''. $string .'\';';
+
     $view->preExecute();
     $view->initHandlers();
     $this->assertTrue($view->argument['null']->validateArgument($string));
@@ -35,8 +34,7 @@ function testArgumentValidatePhp() {
   }
 
   function testArgumentValidateNumeric() {
-    $view = $this->view_argument_validate_numeric();
-    $view->setDisplay('default');
+    $view = $this->createViewFromConfig('test_view_argument_validate_numeric');
     $view->preExecute();
     $view->initHandlers();
     $this->assertFalse($view->argument['null']->validateArgument($this->randomString()));
@@ -45,68 +43,4 @@ function testArgumentValidateNumeric() {
     $this->assertTrue($view->argument['null']->validateArgument(12));
   }
 
-  function view_test_argument_validate_php($string) {
-    $code = 'return $argument == \''. $string .'\';';
-    $view = new View(array(), 'view');
-    $view->name = 'view_argument_validate_numeric';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Argument: Global: Null */
-    $handler->display->display_options['arguments']['null']['id'] = 'null';
-    $handler->display->display_options['arguments']['null']['table'] = 'views';
-    $handler->display->display_options['arguments']['null']['field'] = 'null';
-    $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['null']['validate']['type'] = 'php';
-    $handler->display->display_options['arguments']['null']['validate_options']['code'] = $code;
-    $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
-
-    return $view;
-  }
-
-  function view_argument_validate_numeric() {
-    $view = new View(array(), 'view');
-    $view->name = 'view_argument_validate_numeric';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Argument: Global: Null */
-    $handler->display->display_options['arguments']['null']['id'] = 'null';
-    $handler->display->display_options['arguments']['null']['table'] = 'views';
-    $handler->display->display_options['arguments']['null']['field'] = 'null';
-    $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['null']['validate']['type'] = 'numeric';
-    $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Plugin/CacheTest.php b/lib/Drupal/views/Tests/Plugin/CacheTest.php
index ed22e0a..0c5a29c 100644
--- a/lib/Drupal/views/Tests/Plugin/CacheTest.php
+++ b/lib/Drupal/views/Tests/Plugin/CacheTest.php
@@ -86,8 +86,7 @@ protected function getBasicView() {
    */
   function testTimeCaching() {
     // Create a basic result which just 2 results.
-    $view = $this->getBasicView();
-    $view->setDisplay();
+    $view = $this->getView();
     $view->display_handler->overrideOption('cache', array(
       'type' => 'time',
       'results_lifespan' => '3600',
@@ -107,8 +106,7 @@ function testTimeCaching() {
     drupal_write_record('views_test', $record);
 
     // The Result should be the same as before, because of the caching.
-    $view = $this->getBasicView();
-    $view->setDisplay();
+    $view = $this->getView();
     $view->display_handler->overrideOption('cache', array(
       'type' => 'time',
       'results_lifespan' => '3600',
@@ -127,8 +125,7 @@ function testTimeCaching() {
    */
   function testNoneCaching() {
     // Create a basic result which just 2 results.
-    $view = $this->getBasicView();
-    $view->setDisplay();
+    $view = $this->getView();
     $view->display_handler->overrideOption('cache', array(
       'type' => 'none',
     ));
@@ -147,8 +144,7 @@ function testNoneCaching() {
     drupal_write_record('views_test', $record);
 
     // The Result changes, because the view is not cached.
-    $view = $this->getBasicView();
-    $view->setDisplay();
+    $view = $this->getView();
     $view->display_handler->overrideOption('cache', array(
       'type' => 'none',
     ));
@@ -165,8 +161,7 @@ function testHeaderStorage() {
     // Create a view with output caching enabled.
     // Some hook_views_pre_render in views_test.module adds the test css/js file.
     // so they should be added to the css/js storage.
-    $view = $this->getBasicView();
-    $view->initDisplay();
+    $view = $this->getView();
     $view->name = 'test_cache_header_storage';
     $view->display_handler->overrideOption('cache', array(
       'type' => 'time',
diff --git a/lib/Drupal/views/Tests/Plugin/DisplayTest.php b/lib/Drupal/views/Tests/Plugin/DisplayTest.php
index 10a3861..90d6432 100644
--- a/lib/Drupal/views/Tests/Plugin/DisplayTest.php
+++ b/lib/Drupal/views/Tests/Plugin/DisplayTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
-
 /**
  * Tests the basic display plugin.
  */
@@ -26,7 +24,7 @@ public static function getInfo() {
    * Tests the overriding of filter_groups.
    */
   function testFilterGroupsOverriding() {
-    $view = $this->viewFilterGroupsUpdating();
+    $view = $this->createViewFromConfig('test_filter_groups');
     $view->initDisplay();
 
     // mark is as overridden, yes FALSE, means overridden.
@@ -35,149 +33,4 @@ function testFilterGroupsOverriding() {
     $this->assertFalse($view->display['page']->handler->isDefaulted('filters'), "Take sure that 'filters'' is marked as overridden.");
   }
 
-  /**
-   * Returns a test view for testFilterGroupsOverriding.
-   *
-   * @see testFilterGroupsOverriding
-   * @return Drupal\views\View
-   */
-  function viewFilterGroupsOverriding() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_filter_group_override';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'test_filter_group_override';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['label'] = '';
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
-    /* Filter criterion: Content: Published */
-    $handler->display->display_options['filters']['status']['id'] = 'status';
-    $handler->display->display_options['filters']['status']['table'] = 'node';
-    $handler->display->display_options['filters']['status']['field'] = 'status';
-    $handler->display->display_options['filters']['status']['value'] = 1;
-    $handler->display->display_options['filters']['status']['group'] = 1;
-    $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
-
-    /* Display: Page */
-    $handler = $view->newDisplay('page', 'Page', 'page_1');
-    $handler->display->display_options['path'] = 'test';
-
-    return $view;
-  }
-
-  /**
-   * Returns a test view for testFilterGroupUpdating.
-   *
-   * @see testFilterGroupUpdating
-   *
-   * @return Drupal\views\View
-   */
-  function viewFilterGroupsUpdating() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_filter_groups';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'test_filter_groups';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['title'] = 'test_filter_groups';
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['label'] = '';
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
-    /* Sort criterion: Content: Post date */
-    $handler->display->display_options['sorts']['created']['id'] = 'created';
-    $handler->display->display_options['sorts']['created']['table'] = 'node';
-    $handler->display->display_options['sorts']['created']['field'] = 'created';
-    $handler->display->display_options['sorts']['created']['order'] = 'DESC';
-    $handler->display->display_options['filter_groups']['groups'] = array(
-      1 => 'AND',
-      2 => 'AND',
-    );
-    /* Filter criterion: Content: Published */
-    $handler->display->display_options['filters']['status']['id'] = 'status';
-    $handler->display->display_options['filters']['status']['table'] = 'node';
-    $handler->display->display_options['filters']['status']['field'] = 'status';
-    $handler->display->display_options['filters']['status']['value'] = 1;
-    $handler->display->display_options['filters']['status']['group'] = 1;
-    $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
-    /* Filter criterion: Content: Nid */
-    $handler->display->display_options['filters']['nid']['id'] = 'nid';
-    $handler->display->display_options['filters']['nid']['table'] = 'node';
-    $handler->display->display_options['filters']['nid']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid']['value']['value'] = '1';
-    $handler->display->display_options['filters']['nid']['group'] = 2;
-    /* Filter criterion: Content: Nid */
-    $handler->display->display_options['filters']['nid_1']['id'] = 'nid_1';
-    $handler->display->display_options['filters']['nid_1']['table'] = 'node';
-    $handler->display->display_options['filters']['nid_1']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid_1']['value']['value'] = '2';
-    $handler->display->display_options['filters']['nid_1']['group'] = 2;
-
-    /* Display: Page */
-    $handler = $view->newDisplay('page', 'Page', 'page');
-    $handler->display->display_options['filter_groups']['operator'] = 'OR';
-    $handler->display->display_options['filter_groups']['groups'] = array(
-      1 => 'OR',
-      2 => 'OR',
-    );
-    $handler->display->display_options['defaults']['filters'] = FALSE;
-    /* Filter criterion: Content: Published */
-    $handler->display->display_options['filters']['status']['id'] = 'status';
-    $handler->display->display_options['filters']['status']['table'] = 'node';
-    $handler->display->display_options['filters']['status']['field'] = 'status';
-    $handler->display->display_options['filters']['status']['value'] = 1;
-    $handler->display->display_options['filters']['status']['group'] = 1;
-    $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
-    /* Filter criterion: Content: Nid */
-    $handler->display->display_options['filters']['nid']['id'] = 'nid';
-    $handler->display->display_options['filters']['nid']['table'] = 'node';
-    $handler->display->display_options['filters']['nid']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid']['value']['value'] = '1';
-    $handler->display->display_options['filters']['nid']['group'] = 2;
-    /* Filter criterion: Content: Nid */
-    $handler->display->display_options['filters']['nid_1']['id'] = 'nid_1';
-    $handler->display->display_options['filters']['nid_1']['table'] = 'node';
-    $handler->display->display_options['filters']['nid_1']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid_1']['value']['value'] = '2';
-    $handler->display->display_options['filters']['nid_1']['group'] = 2;
-    $handler->display->display_options['path'] = 'test-filter-groups';
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/Plugin/ExposedFormTest.php b/lib/Drupal/views/Tests/Plugin/ExposedFormTest.php
index db14e69..e887894 100644
--- a/lib/Drupal/views/Tests/Plugin/ExposedFormTest.php
+++ b/lib/Drupal/views/Tests/Plugin/ExposedFormTest.php
@@ -50,7 +50,7 @@ public function testRenameResetButton() {
     $this->drupalGet('test_rename_reset_button');
     // Rename the label of the reset button.
     $view = views_get_view('test_rename_reset_button');
-    $view->setDisplay('default');
+    $view->setDisplay();
 
     $exposed_form = $view->display_handler->getOption('exposed_form');
     $exposed_form['options']['reset_button_label'] = $expected_label = $this->randomName();
diff --git a/lib/Drupal/views/Tests/Plugin/PagerTest.php b/lib/Drupal/views/Tests/Plugin/PagerTest.php
index 01e5199..3f2f37d 100644
--- a/lib/Drupal/views/Tests/Plugin/PagerTest.php
+++ b/lib/Drupal/views/Tests/Plugin/PagerTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
-
 /**
  * Tests the pluggable pager system.
  */
@@ -58,7 +56,7 @@ public function testStorePagerSettings() {
     $this->assertText('Mini', 'Changed pager plugin, should change some text');
 
     // Test behaviour described in http://drupal.org/node/652712#comment-2354400
-    $view = $this->viewsStorePagerSettings();
+    $view = $this->createViewFromConfig('test_store_pager_settings');
     // Make it editable in the admin interface.
     $view->save();
 
@@ -102,29 +100,6 @@ public function testStorePagerSettings() {
 
   }
 
-  public function viewsStorePagerSettings() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_store_pager_settings';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-    $view->uuid = NULL;
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'none';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    return $view;
-  }
-
   /**
    * Tests the none-pager-query.
    */
@@ -134,16 +109,12 @@ public function testNoLimit() {
     for ($i = 0; $i < 11; $i++) {
       $this->drupalCreateNode();
     }
-    $view = $this->viewsPagerNoLimit();
-    $view->setDisplay('default');
+    $view = $this->getView();
     $this->executeView($view);
     $this->assertEqual(count($view->result), 11, 'Make sure that every item is returned in the result');
 
-    $view->destroy();
-
     // Setup and test a offset.
-    $view = $this->viewsPagerNoLimit();
-    $view->setDisplay('default');
+    $view = $this->getView();
 
     $pager = array(
       'type' => 'none',
@@ -162,37 +133,20 @@ public function testNoLimit() {
     $this->assertEqual($view->pager->get_items_per_page(), 0);
   }
 
-  public function viewsPagerNoLimit() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_pager_none';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'none';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_pager_none');
   }
 
   public function testViewTotalRowsWithoutPager() {
     $this->createNodes(23);
 
-    $view = $this->viewsPagerNoLimit();
-    $view->get_total_rows = TRUE;
-    $view->setDisplay('default');
-    $this->executeView($view);
+    $this->view->get_total_rows = TRUE;
+    $this->executeView($this->view);
 
-    $this->assertEqual($view->total_rows, 23, "'total_rows' is calculated when pager type is 'none' and 'get_total_rows' is TRUE.");
+    $this->assertEqual($this->view->total_rows, 23, "'total_rows' is calculated when pager type is 'none' and 'get_total_rows' is TRUE.");
   }
 
   public function createNodes($count) {
@@ -207,20 +161,19 @@ public function createNodes($count) {
    * Tests the some pager plugin.
    */
   public function testLimit() {
+    $saved_view = $this->createViewFromConfig('test_pager_some');
+
     // Create 11 nodes and make sure that everyone is returned.
     // We create 11 nodes, because the default pager plugin had 10 items per page.
     for ($i = 0; $i < 11; $i++) {
       $this->drupalCreateNode();
     }
-    $view = $this->viewsPagerLimit();
-    $view->setDisplay('default');
+    $view = $saved_view->cloneView();
     $this->executeView($view);
     $this->assertEqual(count($view->result), 5, 'Make sure that only a certain count of items is returned');
-    $view->destroy();
 
     // Setup and test a offset.
-    $view = $this->viewsPagerLimit();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
 
     $pager = array(
       'type' => 'none',
@@ -238,48 +191,23 @@ public function testLimit() {
     $this->assertFalse($view->pager->use_count_query());
   }
 
-  public function viewsPagerLimit() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_pager_some';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['pager']['options']['offset'] = 0;
-    $handler->display->display_options['pager']['options']['items_per_page'] = 5;
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    return $view;
-  }
-
   /**
    * Tests the normal pager.
    */
   public function testNormalPager() {
+    $saved_view = $this->createViewFromConfig('test_pager_full');
+
     // Create 11 nodes and make sure that everyone is returned.
     // We create 11 nodes, because the default pager plugin had 10 items per page.
     for ($i = 0; $i < 11; $i++) {
       $this->drupalCreateNode();
     }
-    $view = $this->viewsPagerFull();
-    $view->setDisplay('default');
+    $view = $saved_view->cloneView();
     $this->executeView($view);
     $this->assertEqual(count($view->result), 5, 'Make sure that only a certain count of items is returned');
-    $view->destroy();
 
     // Setup and test a offset.
-    $view = $this->viewsPagerFull();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
 
     $pager = array(
       'type' => 'full',
@@ -293,8 +221,7 @@ public function testNormalPager() {
     $this->assertEqual(count($view->result), 3, 'Make sure that only a certain count of items is returned');
 
     // Test items per page = 0
-    $view = $this->viewPagerFullZeroItemsPerPage();
-    $view->setDisplay('default');
+    $view = $this->createViewFromConfig('test_view_pager_full_zero_items_per_page');
     $this->executeView($view);
 
     $this->assertEqual(count($view->result), 11, 'All items are return');
@@ -302,11 +229,8 @@ public function testNormalPager() {
     // TODO test number of pages.
 
     // Test items per page = 0.
-    $view->destroy();
-
     // Setup and test a offset.
-    $view = $this->viewsPagerFull();
-    $view->setDisplay('default');
+    $view = $this->getView($saved_view);
 
     $pager = array(
       'type' => 'full',
@@ -322,110 +246,6 @@ public function testNormalPager() {
     $this->assertEqual(count($view->result), 11);
   }
 
-  function viewPagerFullZeroItemsPerPage() {
-    $view = new View(array(), 'view');
-    $view->name = 'view_pager_full_zero_items_per_page';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '0';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['title']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['title']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['title']['link_to_node'] = 0;
-
-    return $view;
-  }
-
-  function viewsPagerFull() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_pager_full';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '5';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-
-    return $view;
-  }
-
-  function viewsPagerFullFields() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_pager_full';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '5';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['title']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['title']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['title']['link_to_node'] = 0;
-    return $view;
-  }
-
   /**
    * Tests the minipager.
    */
@@ -442,8 +262,7 @@ public function testRenderNullPager() {
     for ($i = 0; $i < 11; $i++) {
       $this->drupalCreateNode();
     }
-    $view = $this->viewsPagerFullFields();
-    $view->setDisplay('default');
+    $view = $this->createViewFromConfig('test_pager_full');
     $this->executeView($view);
     $view->use_ajax = TRUE; // force the value again here
     $view->pager = NULL;
@@ -455,7 +274,7 @@ public function testRenderNullPager() {
    * Test the api functions on the view object.
    */
   function testPagerApi() {
-    $view = $this->viewsPagerFull();
+    $view = $this->createViewFromConfig('test_pager_full');
     // On the first round don't initialize the pager.
 
     $this->assertEqual($view->getItemsPerPage(), NULL, 'If the pager is not initialized and no manual override there is no items per page.');
@@ -500,7 +319,6 @@ function testPagerApi() {
     $rand_number = rand(6, 11);
     $view->pager->set_current_page($rand_number);
     $this->assertEqual($view->getCurrentPage(), $rand_number, 'Make sure get_current_page uses the settings of set_current_page.');
-
   }
 
 }
diff --git a/lib/Drupal/views/Tests/Plugin/PluginTestBase.php b/lib/Drupal/views/Tests/Plugin/PluginTestBase.php
index 2f03fe6..048690e 100644
--- a/lib/Drupal/views/Tests/Plugin/PluginTestBase.php
+++ b/lib/Drupal/views/Tests/Plugin/PluginTestBase.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\View;
 use Drupal\views\Tests\ViewTestBase;
 
 /**
diff --git a/lib/Drupal/views/Tests/Plugin/StyleTest.php b/lib/Drupal/views/Tests/Plugin/StyleTest.php
index 7144a41..6e16e94 100644
--- a/lib/Drupal/views/Tests/Plugin/StyleTest.php
+++ b/lib/Drupal/views/Tests/Plugin/StyleTest.php
@@ -33,7 +33,7 @@ protected function setUp() {
    * Tests the grouping legacy features of styles.
    */
   function testGroupingLegacy() {
-    $view = $this->getBasicView();
+    $view = $this->view->cloneView();
     // Setup grouping by the job.
     $view->initDisplay();
     $view->initStyle();
@@ -129,7 +129,7 @@ function testGrouping() {
    * Tests the grouping features of styles.
    */
   function _testGrouping($stripped = FALSE) {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     // Setup grouping by the job and the age field.
     $view->initDisplay();
     $view->initStyle();
@@ -262,7 +262,7 @@ function storeViewPreview($output) {
    * Tests custom css classes.
    */
   function testCustomRowClasses() {
-    $view = $this->getBasicView();
+    $view = $this->view->cloneView();
 
     // Setup some random css class.
     $view->initDisplay();
diff --git a/lib/Drupal/views/Tests/Plugin/StyleUnformattedTest.php b/lib/Drupal/views/Tests/Plugin/StyleUnformattedTest.php
index fad50b0..b937825 100644
--- a/lib/Drupal/views/Tests/Plugin/StyleUnformattedTest.php
+++ b/lib/Drupal/views/Tests/Plugin/StyleUnformattedTest.php
@@ -52,7 +52,7 @@ function storeViewPreview($output) {
    * Take sure that the default css classes works as expected.
    */
   function testDefaultRowClasses() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
     $rendered_output = $view->preview();
     $this->storeViewPreview($rendered_output);
 
diff --git a/lib/Drupal/views/Tests/QueryGroupByTest.php b/lib/Drupal/views/Tests/QueryGroupByTest.php
index b533773..d3d2191 100644
--- a/lib/Drupal/views/Tests/QueryGroupByTest.php
+++ b/lib/Drupal/views/Tests/QueryGroupByTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests;
 
-use Drupal\views\View;
-
 /**
  * Tests aggregate functionality of views, for example count.
  */
@@ -20,7 +18,6 @@ public static function getInfo() {
       'description' => 'Tests aggregate functionality of views, for example count.',
       'group' => 'Views',
     );
-
   }
 
   /**
@@ -46,8 +43,8 @@ public function testAggregateCount() {
     $this->drupalCreateNode($node_2);
     $this->drupalCreateNode($node_2);
 
-    $view = $this->viewsAggregateCountView();
-    $output = $view->executeDisplay();
+    $view = $this->createViewFromConfig('test_aggregate_count');
+    $this->executeView($view);
 
     $this->assertEqual(count($view->result), 2, 'Make sure the count of items is right.');
 
@@ -64,54 +61,6 @@ public function testAggregateCount() {
   //public function testAggregateSum() {
   //}
 
-  public function viewsAggregateCountView() {
-    $view = new View(array(), 'view');
-    $view->name = 'aggregate_count';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->human_name = '';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['group_by'] = TRUE;
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['query']['options']['query_comment'] = FALSE;
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'title';
-    $handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['nid']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['nid']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['nid']['link_to_node'] = 0;
-    /* Contextual filter: Content: Type */
-    $handler->display->display_options['arguments']['type']['id'] = 'type';
-    $handler->display->display_options['arguments']['type']['table'] = 'node';
-    $handler->display->display_options['arguments']['type']['field'] = 'type';
-    $handler->display->display_options['arguments']['type']['default_action'] = 'summary';
-    $handler->display->display_options['arguments']['type']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['type']['summary']['format'] = 'default_summary';
-
-
-    return $view;
-  }
-
   /**
    * @param $group_by
    *   Which group_by function should be used, for example sum or count.
@@ -137,8 +86,9 @@ function GroupByTestHelper($group_by, $values) {
     $this->drupalCreateNode($node_2);
     $this->drupalCreateNode($node_2);
 
-    $view = $this->viewsGroupByViewHelper($group_by);
-    $output = $view->executeDisplay();
+    $view = $this->createViewFromConfig('test_group_by_count');
+    $view->display['default']->handler->options['fields']['nid']['group_type'] = $group_by;
+    $this->executeView($view);
 
     $this->assertEqual(count($view->result), 2, 'Make sure the count of items is right.');
     // Group by nodetype to identify the right count.
@@ -149,59 +99,6 @@ function GroupByTestHelper($group_by, $values) {
     $this->assertEqual($results[$type2->type], $values[1]);
   }
 
-  function viewsGroupByViewHelper($group_by) {
-    $view = new View(array(), 'view');
-    $view->name = 'group_by_count';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['group_by'] = TRUE;
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Nid */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    $handler->display->display_options['fields']['nid']['group_type'] = $group_by;
-    $handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['nid']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['nid']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['nid']['link_to_node'] = 0;
-    /* Field: Content: Type */
-    $handler->display->display_options['fields']['type']['id'] = 'type';
-    $handler->display->display_options['fields']['type']['table'] = 'node';
-    $handler->display->display_options['fields']['type']['field'] = 'type';
-    $handler->display->display_options['fields']['type']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['type']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['type']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['type']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['type']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['type']['link_to_node'] = 0;
-
-    return $view;
-  }
-
   public function testGroupByCount() {
     $this->GroupByTestHelper('count', array(4, 3));
   }
@@ -236,56 +133,17 @@ public function testGroupByCountOnlyFilters() {
       $this->drupalCreateNode($node_1);
     }
 
-    $view = $this->viewsGroupByCountViewOnlyFilters();
-    $output = $view->executeDisplay();
+    $this->executeView($this->view);
 
-    $this->assertTrue(strpos($view->build_info['query'], 'GROUP BY'), t('Make sure that GROUP BY is in the query'));
-    $this->assertTrue(strpos($view->build_info['query'], 'HAVING'), t('Make sure that HAVING is in the query'));
+    $this->assertTrue(strpos($this->view->build_info['query'], 'GROUP BY'), t('Make sure that GROUP BY is in the query'));
+    $this->assertTrue(strpos($this->view->build_info['query'], 'HAVING'), t('Make sure that HAVING is in the query'));
   }
 
-  public function viewsGroupByCountViewOnlyFilters() {
-    $view = new View(array(), 'view');
-    $view->name = 'group_by_in_filters';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['group_by'] = TRUE;
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Node: Type */
-    $handler->display->display_options['fields']['type']['id'] = 'type';
-    $handler->display->display_options['fields']['type']['table'] = 'node';
-    $handler->display->display_options['fields']['type']['field'] = 'type';
-    $handler->display->display_options['fields']['type']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['type']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['type']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['type']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['type']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['type']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['type']['link_to_node'] = 0;
-    /* Filter: Node: Nid */
-    $handler->display->display_options['filters']['nid']['id'] = 'nid';
-    $handler->display->display_options['filters']['nid']['table'] = 'node';
-    $handler->display->display_options['filters']['nid']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid']['group_type'] = 'count';
-    $handler->display->display_options['filters']['nid']['operator'] = '>';
-    $handler->display->display_options['filters']['nid']['value']['value'] = '3';
-
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_group_by_in_filters');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/Taxonomy/RelationshipNodeTermDataTest.php b/lib/Drupal/views/Tests/Taxonomy/RelationshipNodeTermDataTest.php
index cf6dab5..f96cbb1 100644
--- a/lib/Drupal/views/Tests/Taxonomy/RelationshipNodeTermDataTest.php
+++ b/lib/Drupal/views/Tests/Taxonomy/RelationshipNodeTermDataTest.php
@@ -8,7 +8,6 @@
 namespace Drupal\views\Tests\Taxonomy;
 
 use Drupal\views\Tests\ViewTestBase;
-use Drupal\views\View;
 
 /**
  * Tests the node_term_data relationship handler.
@@ -63,74 +62,21 @@ function setUp() {
   }
 
   function testViewsHandlerRelationshipNodeTermData() {
-    $view = $this->view_taxonomy_node_term_data();
-
-    $this->executeView($view, array($this->term_1->tid, $this->term_2->tid));
+    $this->executeView($this->view, array($this->term_1->tid, $this->term_2->tid));
     $resultset = array(
       array(
         'nid' => $this->node->nid,
       ),
     );
     $this->column_map = array('nid' => 'nid');
-    $this->assertIdenticalResultset($view, $resultset, $this->column_map);
+    $this->assertIdenticalResultset($this->view, $resultset, $this->column_map);
   }
 
-  function view_taxonomy_node_term_data() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_taxonomy_node_term_data';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->human_name = 'test_taxonomy_node_term_data';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'node';
-    /* Relationship: Content: Taxonomy terms on node */
-    $handler->display->display_options['relationships']['term_node_tid']['id'] = 'term_node_tid';
-    $handler->display->display_options['relationships']['term_node_tid']['table'] = 'node';
-    $handler->display->display_options['relationships']['term_node_tid']['field'] = 'term_node_tid';
-    $handler->display->display_options['relationships']['term_node_tid']['label'] = 'Term #1';
-    $handler->display->display_options['relationships']['term_node_tid']['vocabularies'] = array(
-      'tags' => 0,
-    );
-    /* Relationship: Content: Taxonomy terms on node */
-    $handler->display->display_options['relationships']['term_node_tid_1']['id'] = 'term_node_tid_1';
-    $handler->display->display_options['relationships']['term_node_tid_1']['table'] = 'node';
-    $handler->display->display_options['relationships']['term_node_tid_1']['field'] = 'term_node_tid';
-    $handler->display->display_options['relationships']['term_node_tid_1']['label'] = 'Term #2';
-    $handler->display->display_options['relationships']['term_node_tid_1']['vocabularies'] = array(
-      'tags' => 0,
-    );
-    /* Contextual filter: Taxonomy term: Term ID */
-    $handler->display->display_options['arguments']['tid']['id'] = 'tid';
-    $handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_term_data';
-    $handler->display->display_options['arguments']['tid']['field'] = 'tid';
-    $handler->display->display_options['arguments']['tid']['relationship'] = 'term_node_tid';
-    $handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
-    $handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
-    $handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
-    /* Contextual filter: Taxonomy term: Term ID */
-    $handler->display->display_options['arguments']['tid_1']['id'] = 'tid_1';
-    $handler->display->display_options['arguments']['tid_1']['table'] = 'taxonomy_term_data';
-    $handler->display->display_options['arguments']['tid_1']['field'] = 'tid';
-    $handler->display->display_options['arguments']['tid_1']['relationship'] = 'term_node_tid_1';
-    $handler->display->display_options['arguments']['tid_1']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['tid_1']['summary']['number_of_records'] = '0';
-    $handler->display->display_options['arguments']['tid_1']['summary']['format'] = 'default_summary';
-    $handler->display->display_options['arguments']['tid_1']['summary_options']['items_per_page'] = '25';
-
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_taxonomy_node_term_data');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/TranslatableTest.php b/lib/Drupal/views/Tests/TranslatableTest.php
index b8c9aab..bd016f9 100644
--- a/lib/Drupal/views/Tests/TranslatableTest.php
+++ b/lib/Drupal/views/Tests/TranslatableTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests;
 
-use Drupal\views\View;
-
 /**
  * Tests Views pluggable translations.
  */
@@ -50,16 +48,25 @@ protected function setUp() {
       'fieldlabel1',
       'filterlabel1'
     );
+
+    $this->view = $this->getBasicView();
+  }
+
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_view_unpack_translatable');
   }
 
   /**
    * Tests the unpack translation funtionality.
    */
   public function testUnpackTranslatable() {
-    $view = $this->view_unpack_translatable();
+    $view = $this->getView();
     $view->initLocalization();
 
-    $this->assertEqual('Drupal\views_test\Plugin\views\localization\LocalizationTest', get_class($view->localization_plugin), 'Make sure that init_localization initializes the right translation plugin');
+    $this->assertEqual('Drupal\views_test_data\Plugin\views\localization\LocalizationTest', get_class($view->localization_plugin), 'Make sure that init_localization initializes the right translation plugin');
 
     $view->exportLocaleStrings();
 
@@ -70,7 +77,7 @@ public function testUnpackTranslatable() {
 
   public function testUi() {
     // Make sure that the string is not translated in the UI.
-    $view = $this->view_unpack_translatable();
+    $view = $this->getView();
     $view->save();
     views_invalidate_cache();
 
@@ -85,8 +92,7 @@ public function testUi() {
    * Make sure that the translations get into the loaded view.
    */
   public function testTranslation() {
-    $view = $this->view_unpack_translatable();
-    $view->setDisplay('default');
+    $view = $this->getView();
     $this->executeView($view);
 
     $expected_strings = array();
@@ -106,7 +112,7 @@ public function testTranslation() {
    * Make sure that the different things have the right translation keys.
    */
   public function testTranslationKey() {
-    $view = $this->view_unpack_translatable();
+    $view = $this->getView();
     $view->editing = TRUE;
     $view->initDisplay();
 
@@ -142,72 +148,4 @@ public function testTranslationKey() {
     }
   }
 
-  public function view_unpack_translatable() {
-    $view = new View(array(), 'view');
-    $view->name = 'view_unpack_translatable';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-    $view->uuid = NULL;
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master1', 'default');
-    $handler->display->display_options['title'] = 'title1';
-    $handler->display->display_options['use_more_text'] = 'more1';
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['exposed_form']['options']['submit_button'] = 'Apply1';
-    $handler->display->display_options['exposed_form']['options']['reset_button'] = TRUE;
-    $handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reset1';
-    $handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Sort By1';
-    $handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Asc1';
-    $handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Desc1';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['pager']['options']['quantity'] = '9';
-    $handler->display->display_options['pager']['options']['tags']['first'] = 'Tag first1';
-    $handler->display->display_options['pager']['options']['tags']['previous'] = 'Tag prev1';
-    $handler->display->display_options['pager']['options']['tags']['next'] = 'Tag next1';
-    $handler->display->display_options['pager']['options']['tags']['last'] = 'Tag last1';
-    $handler->display->display_options['pager']['options']['expose']['items_per_page'] = TRUE;
-    $handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Items per page1';
-    $handler->display->display_options['pager']['options']['expose']['offset'] = TRUE;
-    $handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Offset1';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Nid */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    $handler->display->display_options['fields']['nid']['label'] = 'fieldlabel1';
-    $handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['nid']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['nid']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['nid']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['nid']['link_to_node'] = 0;
-    /* Filter: Content: Nid */
-    $handler->display->display_options['filters']['nid']['id'] = 'nid';
-    $handler->display->display_options['filters']['nid']['table'] = 'node';
-    $handler->display->display_options['filters']['nid']['field'] = 'nid';
-    $handler->display->display_options['filters']['nid']['exposed'] = TRUE;
-    $handler->display->display_options['filters']['nid']['expose']['operator_id'] = 'nid_op';
-    $handler->display->display_options['filters']['nid']['expose']['label'] = 'filterlabel1';
-    $handler->display->display_options['filters']['nid']['expose']['identifier'] = 'nid';
-    $handler->display->display_options['filters']['nid']['expose']['multiple'] = 1;
-    $handler->display->display_options['filters']['nid']['expose']['reduce'] = 0;
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/UpgradeTestCase.php b/lib/Drupal/views/Tests/UpgradeTestCase.php
index 3ecb760..7d3feb1 100644
--- a/lib/Drupal/views/Tests/UpgradeTestCase.php
+++ b/lib/Drupal/views/Tests/UpgradeTestCase.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests;
 
-use Drupal\views\View;
-
 /**
  * Tests the upgrade path of all conversions.
  *
@@ -68,7 +66,7 @@ function debugField($field) {
    */
   public function testMovedTo() {
     // Test moving on field lavel.
-    $view = $this->viewsMovedToField();
+    $view = $this->createViewFromConfig('test_views_move_to_field');
     $view->update();
     $view->build();
 
@@ -79,7 +77,7 @@ public function testMovedTo() {
     $this->assertEqual('old_field_1', $view->field['old_field_1']->original_field, 'The field should have stored the original_field');
 
     // Test moving on handler lavel.
-    $view = $this->viewsMovedToHandler();
+    $view = $this->createViewFromConfig('test_views_move_to_handler');
     $view->update();
     $view->build();
 
@@ -92,7 +90,7 @@ public function testMovedTo() {
     $this->assertEqual('views_test', $view->filter['old_field_3']->table);
 
     // Test moving on table level.
-    $view = $this->viewsMovedToTable();
+    $view = $this->createViewFromConfig('test_views_move_to_table');
     $view->update();
     $view->build();
 
@@ -119,73 +117,10 @@ public function testUpgradeImport() {
     $this->assertText('Recent comments');
   }
 
-  public function viewsMovedToField() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_views_move_to_field';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'views_test';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-
-    $handler->display->display_options['fields']['old_field_1']['id'] = 'old_field_1';
-    $handler->display->display_options['fields']['old_field_1']['table'] = 'views_test';
-    $handler->display->display_options['fields']['old_field_1']['field'] = 'old_field_1';
-
-    return $view;
-  }
-
-  public function viewsMovedToHandler() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_views_move_to_handler';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'views_test';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-
-    $handler->display->display_options['fields']['old_field_2']['id'] = 'old_field_2';
-    $handler->display->display_options['fields']['old_field_2']['table'] = 'views_test';
-    $handler->display->display_options['fields']['old_field_2']['field'] = 'old_field_2';
-
-    $handler->display->display_options['filters']['old_field_3']['id'] = 'old_field_3';
-    $handler->display->display_options['filters']['old_field_3']['table'] = 'views_test';
-    $handler->display->display_options['filters']['old_field_3']['field'] = 'old_field_3';
-
-    return $view;
-  }
-
-  public function viewsMovedToTable() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_views_move_to_table';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'views_old_table';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-
-    $handler->display->display_options['fields']['id']['id'] = 'id';
-    $handler->display->display_options['fields']['id']['table'] = 'views_old_table';
-    $handler->display->display_options['fields']['id']['field'] = 'id';
-
-    return $view;
-  }
-
+  /**
+   * @todo When we know if we are having import, we can either remove or
+   * update this.
+   */
   protected function viewUpgradeImport() {
     $import = '
       $view = new Drupal\views\View(array(), "view");
diff --git a/lib/Drupal/views/Tests/User/ArgumentDefaultTest.php b/lib/Drupal/views/Tests/User/ArgumentDefaultTest.php
index 8b6b9f8..bdaf382 100644
--- a/lib/Drupal/views/Tests/User/ArgumentDefaultTest.php
+++ b/lib/Drupal/views/Tests/User/ArgumentDefaultTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\User;
 
-use Drupal\views\View;
-
 /**
  * Tests views user argument default plugin.
  */
@@ -18,7 +16,7 @@ public static function getInfo() {
     return array(
       'name' => 'User: Argument default',
       'description' => 'Tests user argument default plugin.',
-      'group' => 'Views Plugins',
+      'group' => 'Views Modules',
     );
   }
 
@@ -33,64 +31,20 @@ public function test_plugin_argument_default_current_user() {
     drupal_save_session(FALSE);
     $user = $account;
 
-    $view = $this->view_plugin_argument_default_current_user();
-
-    $view->setDisplay('default');
-    $view->preExecute();
-    $view->initHandlers();
+    $this->view->preExecute();
+    $this->view->initHandlers();
 
-    $this->assertEqual($view->argument['null']->get_default_argument(), $account->uid, 'Uid of the current user is used.');
+    $this->assertEqual($this->view->argument['null']->get_default_argument(), $account->uid, 'Uid of the current user is used.');
     // Switch back.
     $user = $admin;
     drupal_save_session(TRUE);
   }
 
-  function view_plugin_argument_default_current_user() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_plugin_argument_default_current_user';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
-    $handler->display->display_options['pager']['options']['offset'] = '0';
-    $handler->display->display_options['pager']['options']['id'] = '0';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['title']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['title']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['title']['link_to_node'] = 0;
-    /* Argument: Global: Null */
-    $handler->display->display_options['arguments']['null']['id'] = 'null';
-    $handler->display->display_options['arguments']['null']['table'] = 'views';
-    $handler->display->display_options['arguments']['null']['field'] = 'null';
-    $handler->display->display_options['arguments']['null']['default_action'] = 'default';
-    $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['null']['default_argument_type'] = 'current_user';
-    $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
-
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_plugin_argument_default_current_user');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/User/ArgumentValidateTest.php b/lib/Drupal/views/Tests/User/ArgumentValidateTest.php
index 9ec4312..73487ec 100644
--- a/lib/Drupal/views/Tests/User/ArgumentValidateTest.php
+++ b/lib/Drupal/views/Tests/User/ArgumentValidateTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\User;
 
-use Drupal\views\View;
-
 /**
  * Tests views user argument argument handler.
  */
@@ -18,7 +16,7 @@ public static function getInfo() {
     return array(
       'name' => 'User: Argument validator',
       'description' => 'Tests user argument validator.',
-      'group' => 'Views Plugins',
+      'group' => 'Views Modules',
     );
   }
 
@@ -32,9 +30,6 @@ function testArgumentValidateUserUid() {
     $account = $this->account;
     // test 'uid' case
     $view = $this->view_argument_validate_user('uid');
-    $view->setDisplay('default');
-    $view->preExecute();
-    $view->initHandlers();
     $this->assertTrue($view->argument['null']->validateArgument($account->uid));
     // Reset safed argument validation.
     $view->argument['null']->argument_validated = NULL;
@@ -50,9 +45,6 @@ function testArgumentValidateUserName() {
     $account = $this->account;
     // test 'name' case
     $view = $this->view_argument_validate_user('name');
-    $view->setDisplay('default');
-    $view->preExecute();
-    $view->initHandlers();
     $this->assertTrue($view->argument['null']->validateArgument($account->name));
     // Reset safed argument validation.
     $view->argument['null']->argument_validated = NULL;
@@ -68,9 +60,6 @@ function testArgumentValidateUserEither() {
     $account = $this->account;
     // test 'either' case
     $view = $this->view_argument_validate_user('either');
-    $view->setDisplay('default');
-    $view->preExecute();
-    $view->initHandlers();
     $this->assertTrue($view->argument['null']->validateArgument($account->name));
     // Reset safed argument validation.
     $view->argument['null']->argument_validated = NULL;
@@ -87,33 +76,10 @@ function testArgumentValidateUserEither() {
   }
 
   function view_argument_validate_user($argtype) {
-    $view = new View(array(), 'view');
-    $view->name = 'view_argument_validate_user';
-    $view->description = '';
-    $view->tag = '';
-    $view->view_php = '';
-    $view->base_table = 'node';
-    $view->is_cacheable = FALSE;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Argument: Global: Null */
-    $handler->display->display_options['arguments']['null']['id'] = 'null';
-    $handler->display->display_options['arguments']['null']['table'] = 'views';
-    $handler->display->display_options['arguments']['null']['field'] = 'null';
-    $handler->display->display_options['arguments']['null']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed';
-    $handler->display->display_options['arguments']['null']['validate']['type'] = 'user';
-    $handler->display->display_options['arguments']['null']['validate_options']['type'] = $argtype;
-    $handler->display->display_options['arguments']['null']['must_not_be'] = 0;
+    $view = $this->createViewFromConfig('test_view_argument_validate_user');
+    $view->display['default']->handler->options['arguments']['null']['validate_options']['type'] = $argtype;
+    $view->preExecute();
+    $view->initHandlers();
 
     return $view;
   }
diff --git a/lib/Drupal/views/Tests/User/HandlerFieldUserNameTest.php b/lib/Drupal/views/Tests/User/HandlerFieldUserNameTest.php
index a9f8fdd..7a28fef 100644
--- a/lib/Drupal/views/Tests/User/HandlerFieldUserNameTest.php
+++ b/lib/Drupal/views/Tests/User/HandlerFieldUserNameTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\User;
 
-use Drupal\views\View;
-
 /**
  * Tests the field username handler.
  *
@@ -25,8 +23,7 @@ public static function getInfo() {
   }
 
   function testUserName() {
-    $view = $this->view_user_name();
-    $view->initDisplay();
+    $view = $this->getView();
     $this->executeView($view);
 
     $view->row_index = 0;
@@ -54,49 +51,13 @@ function testUserName() {
     $anon_name = $view->field['name']->options['anonymous_text'] = $this->randomName();
     $render = $view->field['name']->advanced_render($view->result[0]);
     $this->assertIdentical($render, $anon_name , 'For user0 it should use the configured anonymous text if overwrite_anonymous is checked.');
-
-
   }
-  function view_user_name() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_views_handler_field_user_name';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'users';
-    $view->human_name = 'test_views_handler_field_user_name';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['query']['options']['query_comment'] = FALSE;
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Field: User: Name */
-    $handler->display->display_options['fields']['name']['id'] = 'name';
-    $handler->display->display_options['fields']['name']['table'] = 'users';
-    $handler->display->display_options['fields']['name']['field'] = 'name';
-    $handler->display->display_options['fields']['name']['label'] = '';
-    $handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['word_boundary'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['ellipsis'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['name']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['name']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['name']['link_to_user'] = 1;
-    $handler->display->display_options['fields']['name']['overwrite_anonymous'] = 0;
 
-    return $view;
+  /**
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
+   */
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_views_handler_field_user_name');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/User/UserTest.php b/lib/Drupal/views/Tests/User/UserTest.php
index 40cca16..5ba6320 100644
--- a/lib/Drupal/views/Tests/User/UserTest.php
+++ b/lib/Drupal/views/Tests/User/UserTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests\User;
 
-use Drupal\views\View;
-
 /**
  * Tests basic user module integration into views.
  */
@@ -52,9 +50,9 @@ protected function setUp() {
    * One day a view will require the relationship so it should still work
    */
   public function testRelationship() {
-    $view = $this->test_view_user_relationship();
+    $view = $this->createViewFromConfig('test_user_relationship');
 
-    $view->executeDisplay();
+    $this->executeView($view);
     $expected = array();
     for ($i = 0; $i <= 1; $i++) {
       $expected[$i] = array(
@@ -66,94 +64,4 @@ public function testRelationship() {
     $this->assertIdenticalResultset($view, $expected);
   }
 
-  function test_view_user_relationship() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_user_relationship';
-    $view->description = '';
-    $view->tag = 'default';
-    $view->base_table = 'node';
-    $view->human_name = 'test_user_relationship';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['title'] = 'test_user_relationship';
-    $handler->display->display_options['access']['type'] = 'perm';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['query']['options']['query_comment'] = FALSE;
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    $handler->display->display_options['row_options']['hide_empty'] = 0;
-    $handler->display->display_options['row_options']['default_field_elements'] = 1;
-    /* Field: Content: Title */
-    $handler->display->display_options['fields']['title']['id'] = 'title';
-    $handler->display->display_options['fields']['title']['table'] = 'node';
-    $handler->display->display_options['fields']['title']['field'] = 'title';
-    $handler->display->display_options['fields']['title']['label'] = '';
-    $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['title']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['title']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['title']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['title']['link_to_node'] = 1;
-    /* Field: User: Name */
-    $handler->display->display_options['fields']['name']['id'] = 'name';
-    $handler->display->display_options['fields']['name']['table'] = 'users';
-    $handler->display->display_options['fields']['name']['field'] = 'name';
-    $handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['external'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['replace_spaces'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['trim_whitespace'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['nl2br'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['name']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['name']['element_label_colon'] = 1;
-    $handler->display->display_options['fields']['name']['element_default_classes'] = 1;
-    $handler->display->display_options['fields']['name']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['name']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['name']['hide_alter_empty'] = 0;
-    $handler->display->display_options['fields']['name']['link_to_user'] = 1;
-    $handler->display->display_options['fields']['name']['overwrite_anonymous'] = 0;
-    /* Field: User: Uid */
-    $handler->display->display_options['fields']['uid']['id'] = 'uid';
-    $handler->display->display_options['fields']['uid']['table'] = 'users';
-    $handler->display->display_options['fields']['uid']['field'] = 'uid';
-    $handler->display->display_options['fields']['uid']['alter']['alter_text'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['make_link'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['absolute'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['external'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['replace_spaces'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['trim_whitespace'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['nl2br'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['word_boundary'] = 1;
-    $handler->display->display_options['fields']['uid']['alter']['ellipsis'] = 1;
-    $handler->display->display_options['fields']['uid']['alter']['strip_tags'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['trim'] = 0;
-    $handler->display->display_options['fields']['uid']['alter']['html'] = 0;
-    $handler->display->display_options['fields']['uid']['element_label_colon'] = 1;
-    $handler->display->display_options['fields']['uid']['element_default_classes'] = 1;
-    $handler->display->display_options['fields']['uid']['hide_empty'] = 0;
-    $handler->display->display_options['fields']['uid']['empty_zero'] = 0;
-    $handler->display->display_options['fields']['uid']['hide_alter_empty'] = 0;
-    $handler->display->display_options['fields']['uid']['link_to_user'] = 1;
-
-    return $view;
-  }
-
 }
diff --git a/lib/Drupal/views/Tests/ViewTest.php b/lib/Drupal/views/Tests/ViewTest.php
index a6dfb0d..bc9fbe7 100644
--- a/lib/Drupal/views/Tests/ViewTest.php
+++ b/lib/Drupal/views/Tests/ViewTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\views\Tests;
 
-use Drupal\views\View;
-
 /**
  * Views class tests.
  */
@@ -33,7 +31,7 @@ public static function getInfo() {
    * Tests the deconstructor to be sure that every kind of heavy objects are removed.
    */
   function testDestroy() {
-    $view = $this->view_test_destroy();
+    $view = $this->getView();
 
     $view->preview();
     $view->destroy();
@@ -41,7 +39,7 @@ function testDestroy() {
     $this->assertViewDestroy($view);
 
     // Manipulate the display variable to test a previous bug.
-    $view = $this->view_test_destroy();
+    $view = $this->getView();
     $view->preview();
 
     $view->destroy();
@@ -74,12 +72,11 @@ function testValidate() {
     // Test a view with multiple displays.
     // Validating a view shouldn't change the active display.
     // @todo: Create an extra validation view.
-    $view = $this->view_test_destroy();
-    $view->setDisplay('page_1');
+    $this->view->setDisplay('page_1');
 
-    $view->validate();
+    $this->view->validate();
 
-    $this->assertEqual('page_1', $view->current_display, "The display should be constant while validating");
+    $this->assertEqual('page_1', $this->view->current_display, "The display should be constant while validating");
 
     // @todo: Write real tests for the validation.
     // In general the following things could be tested:
@@ -88,198 +85,10 @@ function testValidate() {
   }
 
   /**
-   * This view provides some filters, fields, arguments, relationships, sorts, areas and attachments.
+   * Overrides Drupal\views\Tests\ViewTestBase::getBasicView().
    */
-  function view_test_destroy() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_destroy';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->human_name = '';
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Master */
-    $handler = $view->newDisplay('default', 'Master', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    /* Header: Global: Text area */
-    $handler->display->display_options['header']['area']['id'] = 'area';
-    $handler->display->display_options['header']['area']['table'] = 'views';
-    $handler->display->display_options['header']['area']['field'] = 'area';
-    $handler->display->display_options['header']['area']['empty'] = FALSE;
-    /* Header: Global: Text area */
-    $handler->display->display_options['header']['area_1']['id'] = 'area_1';
-    $handler->display->display_options['header']['area_1']['table'] = 'views';
-    $handler->display->display_options['header']['area_1']['field'] = 'area';
-    $handler->display->display_options['header']['area_1']['empty'] = FALSE;
-    /* Footer: Global: Text area */
-    $handler->display->display_options['footer']['area']['id'] = 'area';
-    $handler->display->display_options['footer']['area']['table'] = 'views';
-    $handler->display->display_options['footer']['area']['field'] = 'area';
-    $handler->display->display_options['footer']['area']['empty'] = FALSE;
-    /* Footer: Global: Text area */
-    $handler->display->display_options['footer']['area_1']['id'] = 'area_1';
-    $handler->display->display_options['footer']['area_1']['table'] = 'views';
-    $handler->display->display_options['footer']['area_1']['field'] = 'area';
-    $handler->display->display_options['footer']['area_1']['empty'] = FALSE;
-    /* Empty text: Global: Text area */
-    $handler->display->display_options['empty']['area']['id'] = 'area';
-    $handler->display->display_options['empty']['area']['table'] = 'views';
-    $handler->display->display_options['empty']['area']['field'] = 'area';
-    $handler->display->display_options['empty']['area']['empty'] = FALSE;
-    /* Empty text: Global: Text area */
-    $handler->display->display_options['empty']['area_1']['id'] = 'area_1';
-    $handler->display->display_options['empty']['area_1']['table'] = 'views';
-    $handler->display->display_options['empty']['area_1']['field'] = 'area';
-    $handler->display->display_options['empty']['area_1']['empty'] = FALSE;
-    /* Relationship: Comment: Node */
-    $handler->display->display_options['relationships']['nid']['id'] = 'nid';
-    $handler->display->display_options['relationships']['nid']['table'] = 'comments';
-    $handler->display->display_options['relationships']['nid']['field'] = 'nid';
-    /* Relationship: Comment: Parent comment */
-    $handler->display->display_options['relationships']['pid']['id'] = 'pid';
-    $handler->display->display_options['relationships']['pid']['table'] = 'comments';
-    $handler->display->display_options['relationships']['pid']['field'] = 'pid';
-    /* Relationship: Comment: User */
-    $handler->display->display_options['relationships']['uid']['id'] = 'uid';
-    $handler->display->display_options['relationships']['uid']['table'] = 'comments';
-    $handler->display->display_options['relationships']['uid']['field'] = 'uid';
-    /* Field: Content: Nid */
-    $handler->display->display_options['fields']['nid']['id'] = 'nid';
-    $handler->display->display_options['fields']['nid']['table'] = 'node';
-    $handler->display->display_options['fields']['nid']['field'] = 'nid';
-    /* Field: Content: Path */
-    $handler->display->display_options['fields']['path']['id'] = 'path';
-    $handler->display->display_options['fields']['path']['table'] = 'node';
-    $handler->display->display_options['fields']['path']['field'] = 'path';
-    /* Field: Content: Post date */
-    $handler->display->display_options['fields']['created']['id'] = 'created';
-    $handler->display->display_options['fields']['created']['table'] = 'node';
-    $handler->display->display_options['fields']['created']['field'] = 'created';
-    /* Sort criterion: Content: Last comment author */
-    $handler->display->display_options['sorts']['last_comment_name']['id'] = 'last_comment_name';
-    $handler->display->display_options['sorts']['last_comment_name']['table'] = 'node_comment_statistics';
-    $handler->display->display_options['sorts']['last_comment_name']['field'] = 'last_comment_name';
-    /* Sort criterion: Content: Last comment time */
-    $handler->display->display_options['sorts']['last_comment_timestamp']['id'] = 'last_comment_timestamp';
-    $handler->display->display_options['sorts']['last_comment_timestamp']['table'] = 'node_comment_statistics';
-    $handler->display->display_options['sorts']['last_comment_timestamp']['field'] = 'last_comment_timestamp';
-    /* Argument: Content: Created date */
-    $handler->display->display_options['arguments']['created_fulldate']['id'] = 'created_fulldate';
-    $handler->display->display_options['arguments']['created_fulldate']['table'] = 'node';
-    $handler->display->display_options['arguments']['created_fulldate']['field'] = 'created_fulldate';
-    $handler->display->display_options['arguments']['created_fulldate']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['created_fulldate']['default_argument_type'] = 'fixed';
-    /* Argument: Content: Created day */
-    $handler->display->display_options['arguments']['created_day']['id'] = 'created_day';
-    $handler->display->display_options['arguments']['created_day']['table'] = 'node';
-    $handler->display->display_options['arguments']['created_day']['field'] = 'created_day';
-    $handler->display->display_options['arguments']['created_day']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['created_day']['default_argument_type'] = 'fixed';
-    /* Argument: Content: Created month */
-    $handler->display->display_options['arguments']['created_month']['id'] = 'created_month';
-    $handler->display->display_options['arguments']['created_month']['table'] = 'node';
-    $handler->display->display_options['arguments']['created_month']['field'] = 'created_month';
-    $handler->display->display_options['arguments']['created_month']['style_plugin'] = 'default_summary';
-    $handler->display->display_options['arguments']['created_month']['default_argument_type'] = 'fixed';
-    /* Filter: Content: Nid */
-    $handler->display->display_options['filters']['nid']['id'] = 'nid';
-    $handler->display->display_options['filters']['nid']['table'] = 'node';
-    $handler->display->display_options['filters']['nid']['field'] = 'nid';
-    /* Filter: Content: Published */
-    $handler->display->display_options['filters']['status']['id'] = 'status';
-    $handler->display->display_options['filters']['status']['table'] = 'node';
-    $handler->display->display_options['filters']['status']['field'] = 'status';
-    /* Filter: Content: Title */
-    $handler->display->display_options['filters']['title']['id'] = 'title';
-    $handler->display->display_options['filters']['title']['table'] = 'node';
-    $handler->display->display_options['filters']['title']['field'] = 'title';
-
-    /* Display: Page */
-    $handler = $view->newDisplay('page', 'Page', 'page_1');
-    $handler->display->display_options['path'] = 'test_destroy';
-
-    /* Display: Attachment */
-    $handler = $view->newDisplay('attachment', 'Attachment', 'attachment_1');
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['displays'] = array(
-      'default' => 'default',
-      'page_1' => 'page_1',
-    );
-
-    /* Display: Attachment */
-    $handler = $view->newDisplay('attachment', 'Attachment', 'attachment_2');
-    $handler->display->display_options['pager']['type'] = 'some';
-    $handler->display->display_options['displays'] = array(
-      'default' => 'default',
-      'page_1' => 'page_1',
-    );
-    $translatables['test_destroy'] = array(
-      t('Master'),
-      t('more'),
-      t('Apply'),
-      t('Reset'),
-      t('Sort By'),
-      t('Asc'),
-      t('Desc'),
-      t('Items per page'),
-      t('- All -'),
-      t('Offset'),
-      t('Text area'),
-      t('Content'),
-      t('Parent comment'),
-      t('User'),
-      t('Nid'),
-      t('Path'),
-      t('Post date'),
-      t('All'),
-      t('Page'),
-      t('Attachment'),
-    );
-
-    return $view;
-  }
-  function view_test_delete() {
-    $view = new View(array(), 'view');
-    $view->name = 'test_view_delete';
-    $view->description = '';
-    $view->tag = '';
-    $view->base_table = 'node';
-    $view->human_name = 'test_view_delete';
-    $view->core = 8;
-    $view->api_version = '3.0';
-    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-    /* Display: Defaults */
-    $handler = $view->newDisplay('default', 'Defaults', 'default');
-    $handler->display->display_options['access']['type'] = 'none';
-    $handler->display->display_options['cache']['type'] = 'none';
-    $handler->display->display_options['query']['type'] = 'views_query';
-    $handler->display->display_options['exposed_form']['type'] = 'basic';
-    $handler->display->display_options['pager']['type'] = 'full';
-    $handler->display->display_options['style_plugin'] = 'default';
-    $handler->display->display_options['row_plugin'] = 'fields';
-    $translatables['test_view_delete'] = array(
-      t('Defaults'),
-      t('more'),
-      t('Apply'),
-      t('Reset'),
-      t('Sort By'),
-      t('Asc'),
-      t('Desc'),
-      t('Items per page'),
-      t('- All -'),
-      t('Offset'),
-    );
-
-    return $view;
+  protected function getBasicView() {
+    return $this->createViewFromConfig('test_destroy');
   }
 
 }
diff --git a/lib/Drupal/views/Tests/ViewTestBase.php b/lib/Drupal/views/Tests/ViewTestBase.php
index caceaf1..26da1be 100644
--- a/lib/Drupal/views/Tests/ViewTestBase.php
+++ b/lib/Drupal/views/Tests/ViewTestBase.php
@@ -6,7 +6,6 @@
 
 namespace Drupal\views\Tests;
 use Drupal\simpletest\WebTestBase;
-use Drupal\views\View;
 
 /**
  * Abstract class for views testing.
@@ -20,6 +19,13 @@
    */
   public static $modules = array('views');
 
+  /**
+   * The view to use for the test.
+   *
+   * @var Drupal\views\View
+   */
+  protected $view;
+
   protected function setUp() {
     parent::setUp();
 
@@ -27,6 +33,8 @@ protected function setUp() {
     views_init();
     views_get_all_views(TRUE);
     menu_router_rebuild();
+
+    $this->view = $this->getBasicView();
   }
 
 
@@ -41,7 +49,7 @@ protected function enableViewsTestModule() {
     variable_set('views_test_schema', $this->schemaDefinition());
     variable_set('views_test_views_data', $this->viewsData());
 
-    module_enable(array('views_test'));
+    module_enable(array('views_test_data'));
     $this->resetAll();
 
     // Load the test dataset.
@@ -174,7 +182,7 @@ protected function executeView($view, $args = array()) {
    * @return view
    */
   protected function getBasicPageView() {
-    $view = $this->getBasicView();
+    $view = $this->getView();
 
     // In order to test exposed filters, we have to disable
     // the exposed forms cache.
@@ -382,52 +390,46 @@ protected function dataSet() {
    * @return Drupal\views\View
    */
   protected function getBasicView() {
-    // Create the basic view.
-    $view = new View(array(), 'view');
-    $view->name = 'test_view';
-    $view->addDisplay('default');
-    $view->base_table = 'views_test';
-
-    // Set up the fields we need.
-    $display = $view->newDisplay('default', 'Master', 'default');
-    $display->overrideOption('fields', array(
-      'id' => array(
-        'id' => 'id',
-        'table' => 'views_test',
-        'field' => 'id',
-        'relationship' => 'none',
-      ),
-      'name' => array(
-        'id' => 'name',
-        'table' => 'views_test',
-        'field' => 'name',
-        'relationship' => 'none',
-      ),
-      'age' => array(
-        'id' => 'age',
-        'table' => 'views_test',
-        'field' => 'age',
-        'relationship' => 'none',
-      ),
-    ));
-
-    // Set up the sort order.
-    $display->overrideOption('sorts', array(
-      'id' => array(
-        'order' => 'ASC',
-        'id' => 'id',
-        'table' => 'views_test',
-        'field' => 'id',
-        'relationship' => 'none',
-      ),
-    ));
+    return $this->createViewFromConfig('test_view');
+  }
+
+  /**
+   * Creates a new View instance by creating directly from config data.
+   *
+   * @param string $view_name
+   *   The name of the test view to create.
+   *
+   * @return Drupal\views\View
+   *   A View instance.
+   */
+  protected function createViewFromConfig($view_name) {
+    module_enable(array('views_test_config'));
+    $data = config("views.view.$view_name")->get();
+
+    $view = entity_create('view', $data);
+    $view->setDisplay();
 
-    // Set up the pager.
-    $display->overrideOption('pager', array(
-      'type' => 'none',
-      'options' => array('offset' => 0),
-    ));
+    return $view;
+  }
 
+  /**
+   * Clones the view used in this test and sets the default display.
+   *
+   * @param Drupal\views\View $original_view
+   *   (optional) The view to clone. If not specified, the default view for the
+   *   test will be used.
+   *
+   * @return Drupal\views\View
+   *   A clone of the view.
+   */
+  protected function getView($original_view = NULL) {
+    if (isset($original_view)) {
+      $view = $original_view->cloneView();
+    }
+    else {
+      $view = $this->view->cloneView();
+    }
+    $view->setDisplay();
     return $view;
   }
 
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_access_dynamic.yml
similarity index 61%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_access_dynamic.yml
index d9d4c11..87754f6 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_access_dynamic.yml
@@ -7,19 +7,26 @@ display:
     default:
         display_options:
             access:
-                type: none
+                type: test_dynamic
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+    page_1:
+        display_options:
+            path: test_access_dynamic
+        display_plugin: page
+        display_title: Page
+        id: page_1
+        position: '0'
+human_name: ''
+name: test_access_dynamic
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_access_none.yml
similarity index 86%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_access_none.yml
index d9d4c11..1ed0796 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_access_none.yml
@@ -13,13 +13,13 @@ display:
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_access_none
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_access_perm.yml
similarity index 75%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_access_perm.yml
index d9d4c11..f67edb1 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_access_perm.yml
@@ -7,19 +7,20 @@ display:
     default:
         display_options:
             access:
-                type: none
+                perm: 'views_test test permission'
+                type: perm
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_access_perm
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_access_role.yml
similarity index 81%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_access_role.yml
index d9d4c11..c2da0f5 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_access_role.yml
@@ -7,19 +7,19 @@ display:
     default:
         display_options:
             access:
-                type: none
+                type: role
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_access_role
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_access_static.yml
similarity index 61%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_access_static.yml
index d9d4c11..d32bb76 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_access_static.yml
@@ -7,19 +7,26 @@ display:
     default:
         display_options:
             access:
-                type: none
+                type: test_static
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+    page_1:
+        display_options:
+            path: test_access_static
+        display_plugin: page
+        display_title: Page
+        id: page_1
+        position: '0'
+human_name: ''
+name: test_access_static
 tag: ''
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_aggregate_count.yml
similarity index 67%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_aggregate_count.yml
index 9e589ee..19cc0f3 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_aggregate_count.yml
@@ -9,17 +9,20 @@ display:
             access:
                 type: none
             arguments:
-                uid:
-                    default_action: default
-                    field: uid
-                    id: uid
+                type:
+                    default_action: summary
+                    default_argument_type: fixed
+                    field: type
+                    id: type
+                    summary:
+                        format: default_summary
                     table: node
             cache:
                 type: none
             exposed_form:
                 type: basic
             fields:
-                title:
+                nid:
                     alter:
                         alter_text: '0'
                         ellipsis: '1'
@@ -31,21 +34,22 @@ display:
                     empty_zero: '0'
                     field: title
                     hide_empty: '0'
-                    id: title
+                    id: nid
                     link_to_node: '0'
                     table: node
+            group_by: '1'
             pager:
+                type: some
+            query:
                 options:
-                    id: '0'
-                    items_per_page: '10'
-                    offset: '0'
-                type: full
+                    query_comment: '0'
+                type: views_query
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_aggregate_count
 tag: ''
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_argument_default_fixed.yml
similarity index 80%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_argument_default_fixed.yml
index 9e589ee..a59a923 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_argument_default_fixed.yml
@@ -9,11 +9,14 @@ display:
             access:
                 type: none
             arguments:
-                uid:
+                'null':
                     default_action: default
-                    field: uid
-                    id: uid
-                    table: node
+                    default_argument_type: fixed
+                    field: 'null'
+                    id: 'null'
+                    must_not_be: '0'
+                    style_plugin: default_summary
+                    table: views
             cache:
                 type: none
             exposed_form:
@@ -46,6 +49,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_argument_default_fixed
 tag: ''
diff --git a/tests/views_test_config/config/views.view.test_comment_user_uid.yml b/tests/views_test_config/config/views.view.test_comment_user_uid.yml
new file mode 100644
index 0000000..c641af8
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_comment_user_uid.yml
@@ -0,0 +1,46 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: perm
+            arguments:
+                uid_touch:
+                    default_argument_skip_url: '0'
+                    default_argument_type: fixed
+                    field: uid_touch
+                    id: uid_touch
+                    summary:
+                        format: default_summary
+                        number_of_records: '0'
+                    summary_options:
+                        items_per_page: '25'
+                    table: node
+            cache:
+                type: none
+            exposed_form:
+                type: basic
+            fields:
+                nid:
+                    field: nid
+                    id: nid
+                    table: node
+            pager:
+                type: full
+            query:
+                options:
+                    query_comment: '0'
+                type: views_query
+            row_plugin: node
+            style_plugin: default
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: test_comment_user_uid
+name: test_comment_user_uid
+tag: default
diff --git a/tests/views_test_config/config/views.view.test_destroy.yml b/tests/views_test_config/config/views.view.test_destroy.yml
new file mode 100644
index 0000000..5531420
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_destroy.yml
@@ -0,0 +1,156 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    attachment_1:
+        display_options:
+            displays:
+                default: default
+                page_1: page_1
+            pager:
+                type: some
+        display_plugin: attachment
+        display_title: Attachment
+        id: attachment_1
+        position: '0'
+    attachment_2:
+        display_options:
+            displays:
+                default: default
+                page_1: page_1
+            pager:
+                type: some
+        display_plugin: attachment
+        display_title: Attachment
+        id: attachment_2
+        position: '0'
+    default:
+        display_options:
+            access:
+                type: none
+            arguments:
+                created_day:
+                    default_argument_type: fixed
+                    field: created_day
+                    id: created_day
+                    style_plugin: default_summary
+                    table: node
+                created_fulldate:
+                    default_argument_type: fixed
+                    field: created_fulldate
+                    id: created_fulldate
+                    style_plugin: default_summary
+                    table: node
+                created_month:
+                    default_argument_type: fixed
+                    field: created_month
+                    id: created_month
+                    style_plugin: default_summary
+                    table: node
+            cache:
+                type: none
+            empty:
+                area:
+                    empty: '0'
+                    field: area
+                    id: area
+                    table: views
+                area_1:
+                    empty: '0'
+                    field: area
+                    id: area_1
+                    table: views
+            exposed_form:
+                type: basic
+            fields:
+                created:
+                    field: created
+                    id: created
+                    table: node
+                nid:
+                    field: nid
+                    id: nid
+                    table: node
+                path:
+                    field: path
+                    id: path
+                    table: node
+            filters:
+                nid:
+                    field: nid
+                    id: nid
+                    table: node
+                status:
+                    field: status
+                    id: status
+                    table: node
+                title:
+                    field: title
+                    id: title
+                    table: node
+            footer:
+                area:
+                    empty: '0'
+                    field: area
+                    id: area
+                    table: views
+                area_1:
+                    empty: '0'
+                    field: area
+                    id: area_1
+                    table: views
+            header:
+                area:
+                    empty: '0'
+                    field: area
+                    id: area
+                    table: views
+                area_1:
+                    empty: '0'
+                    field: area
+                    id: area_1
+                    table: views
+            pager:
+                type: full
+            query:
+                type: views_query
+            relationships:
+                nid:
+                    field: nid
+                    id: nid
+                    table: comments
+                pid:
+                    field: pid
+                    id: pid
+                    table: comments
+                uid:
+                    field: uid
+                    id: uid
+                    table: comments
+            row_plugin: fields
+            sorts:
+                last_comment_name:
+                    field: last_comment_name
+                    id: last_comment_name
+                    table: node_comment_statistics
+                last_comment_timestamp:
+                    field: last_comment_timestamp
+                    id: last_comment_timestamp
+                    table: node_comment_statistics
+            style_plugin: default
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+    page_1:
+        display_options:
+            path: test_destroy
+        display_plugin: page
+        display_title: Page
+        id: page_1
+        position: '0'
+human_name: ''
+name: test_destroy
+tag: ''
diff --git a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml b/tests/views_test_config/config/views.view.test_filter_date_between.yml
similarity index 57%
copy from tests/views_test/config/views.view.test_filter_in_operator_ui.yml
copy to tests/views_test_config/config/views.view.test_filter_date_between.yml
index 99140dc..a2afce1 100644
--- a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml
+++ b/tests/views_test_config/config/views.view.test_filter_date_between.yml
@@ -12,26 +12,28 @@ display:
                 type: none
             exposed_form:
                 type: basic
+            fields:
+                nid:
+                    field: nid
+                    id: nid
+                    table: node
             filters:
-                type:
-                    expose:
-                        identifier: type
-                        label: 'Content: Type'
-                        operator_id: type_op
-                        reduce: '0'
-                        use_operator: '0'
-                    exposed: '1'
-                    field: type
-                    id: type
+                created:
+                    field: created
+                    id: created
                     table: node
             pager:
                 type: full
+            query:
+                options:
+                    query_comment: '0'
+                type: views_query
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_filter_in_operator_ui
+human_name: ''
+name: test_filter_date_between
 tag: ''
diff --git a/tests/views_test/config/views.view.test_rename_reset_button.yml b/tests/views_test_config/config/views.view.test_filter_group_override.yml
similarity index 51%
copy from tests/views_test/config/views.view.test_rename_reset_button.yml
copy to tests/views_test_config/config/views.view.test_filter_group_override.yml
index 60266ce..2d2c7c6 100644
--- a/tests/views_test/config/views.view.test_rename_reset_button.yml
+++ b/tests/views_test_config/config/views.view.test_filter_group_override.yml
@@ -7,34 +7,34 @@ display:
     default:
         display_options:
             access:
-                type: none
+                type: perm
             cache:
                 type: none
             exposed_form:
-                options:
-                    reset_button: '1'
                 type: basic
+            fields:
+                title:
+                    alter:
+                        ellipsis: '0'
+                        word_boundary: '0'
+                    field: title
+                    id: title
+                    label: ''
+                    table: node
             filters:
-                type:
+                status:
                     expose:
-                        identifier: type
-                        label: 'Content: Type'
-                        operator_id: type_op
-                        reduce: '0'
-                    exposed: '1'
-                    field: type
-                    id: type
+                        operator: '0'
+                    field: status
+                    group: '1'
+                    id: status
                     table: node
+                    value: '1'
             pager:
                 type: full
             query:
-                options:
-                    query_comment: '0'
                 type: views_query
-            row_options:
-                comments: '0'
-                links: '1'
-            row_plugin: node
+            row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
@@ -42,11 +42,11 @@ display:
         position: '0'
     page_1:
         display_options:
-            path: test_rename_reset_button
+            path: test
         display_plugin: page
         display_title: Page
         id: page_1
         position: '0'
-human_name: ''
-name: test_rename_reset_button
-tag: ''
+human_name: test_filter_group_override
+name: test_filter_group_override
+tag: default
diff --git a/tests/views_test_config/config/views.view.test_filter_groups.yml b/tests/views_test_config/config/views.view.test_filter_groups.yml
new file mode 100644
index 0000000..52a4451
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_filter_groups.yml
@@ -0,0 +1,109 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: perm
+            cache:
+                type: none
+            exposed_form:
+                type: basic
+            fields:
+                title:
+                    alter:
+                        ellipsis: '0'
+                        word_boundary: '0'
+                    field: title
+                    id: title
+                    label: ''
+                    table: node
+            filter_groups:
+                groups:
+                    1: AND
+                    2: AND
+            filters:
+                nid:
+                    field: nid
+                    group: '2'
+                    id: nid
+                    table: node
+                    value:
+                        value: '1'
+                nid_1:
+                    field: nid
+                    group: '2'
+                    id: nid_1
+                    table: node
+                    value:
+                        value: '2'
+                status:
+                    expose:
+                        operator: '0'
+                    field: status
+                    group: '1'
+                    id: status
+                    table: node
+                    value: '1'
+            pager:
+                options:
+                    items_per_page: '10'
+                type: full
+            query:
+                type: views_query
+            row_plugin: node
+            sorts:
+                created:
+                    field: created
+                    id: created
+                    order: DESC
+                    table: node
+            style_plugin: default
+            title: test_filter_groups
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+    page:
+        display_options:
+            defaults:
+                filters: '0'
+            filter_groups:
+                groups:
+                    1: OR
+                    2: OR
+                operator: OR
+            filters:
+                nid:
+                    field: nid
+                    group: '2'
+                    id: nid
+                    table: node
+                    value:
+                        value: '1'
+                nid_1:
+                    field: nid
+                    group: '2'
+                    id: nid_1
+                    table: node
+                    value:
+                        value: '2'
+                status:
+                    expose:
+                        operator: '0'
+                    field: status
+                    group: '1'
+                    id: status
+                    table: node
+                    value: '1'
+            path: test-filter-groups
+        display_plugin: page
+        display_title: Page
+        id: page
+        position: '0'
+human_name: test_filter_groups
+name: test_filter_groups
+tag: default
diff --git a/tests/views_test_config/config/views.view.test_glossary.yml b/tests/views_test_config/config/views.view.test_glossary.yml
new file mode 100644
index 0000000..9ba8a9e
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_glossary.yml
@@ -0,0 +1,46 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: perm
+            arguments:
+                title:
+                    default_argument_type: fixed
+                    field: title
+                    glossary: '1'
+                    id: title
+                    limit: '1'
+                    summary:
+                        format: default_summary
+                        number_of_records: '0'
+                    summary_options:
+                        items_per_page: '25'
+                    table: node
+            cache:
+                type: none
+            exposed_form:
+                type: basic
+            fields:
+                title:
+                    field: title
+                    id: title
+                    label: ''
+                    table: node
+            pager:
+                type: full
+            query:
+                type: views_query
+            row_plugin: fields
+            style_plugin: default
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: test_glossary
+name: test_glossary
+tag: default
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_group_by_count.yml
similarity index 57%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_group_by_count.yml
index 9e589ee..3ad53dc 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_group_by_count.yml
@@ -8,18 +8,28 @@ display:
         display_options:
             access:
                 type: none
-            arguments:
-                uid:
-                    default_action: default
-                    field: uid
-                    id: uid
-                    table: node
             cache:
                 type: none
             exposed_form:
                 type: basic
             fields:
-                title:
+                nid:
+                    alter:
+                        alter_text: '0'
+                        ellipsis: '1'
+                        html: '0'
+                        make_link: '0'
+                        strip_tags: '0'
+                        trim: '0'
+                        word_boundary: '1'
+                    empty_zero: '0'
+                    field: nid
+                    group_type: {  }
+                    hide_empty: '0'
+                    id: nid
+                    link_to_node: '0'
+                    table: node
+                type:
                     alter:
                         alter_text: '0'
                         ellipsis: '1'
@@ -29,23 +39,20 @@ display:
                         trim: '0'
                         word_boundary: '1'
                     empty_zero: '0'
-                    field: title
+                    field: type
                     hide_empty: '0'
-                    id: title
+                    id: type
                     link_to_node: '0'
                     table: node
+            group_by: '1'
             pager:
-                options:
-                    id: '0'
-                    items_per_page: '10'
-                    offset: '0'
-                type: full
+                type: some
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_group_by_count
 tag: ''
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_group_by_in_filters.yml
similarity index 68%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_group_by_in_filters.yml
index 9e589ee..b32133f 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_group_by_in_filters.yml
@@ -8,18 +8,12 @@ display:
         display_options:
             access:
                 type: none
-            arguments:
-                uid:
-                    default_action: default
-                    field: uid
-                    id: uid
-                    table: node
             cache:
                 type: none
             exposed_form:
                 type: basic
             fields:
-                title:
+                type:
                     alter:
                         alter_text: '0'
                         ellipsis: '1'
@@ -29,23 +23,29 @@ display:
                         trim: '0'
                         word_boundary: '1'
                     empty_zero: '0'
-                    field: title
+                    field: type
                     hide_empty: '0'
-                    id: title
+                    id: type
                     link_to_node: '0'
                     table: node
+            filters:
+                nid:
+                    field: nid
+                    group_type: count
+                    id: nid
+                    operator: '>'
+                    table: node
+                    value:
+                        value: '3'
+            group_by: '1'
             pager:
-                options:
-                    id: '0'
-                    items_per_page: '10'
-                    offset: '0'
-                type: full
+                type: some
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_group_by_in_filters
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_pager_full.yml
similarity index 66%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_pager_full.yml
index d9d4c11..32c1093 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_pager_full.yml
@@ -13,13 +13,17 @@ display:
             exposed_form:
                 type: basic
             pager:
-                type: none
-            row_plugin: fields
+                options:
+                    id: '0'
+                    items_per_page: '5'
+                    offset: '0'
+                type: full
+            row_plugin: node
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_pager_full
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_pager_none.yml
similarity index 85%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_pager_none.yml
index d9d4c11..6826816 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_pager_none.yml
@@ -14,12 +14,12 @@ display:
                 type: basic
             pager:
                 type: none
-            row_plugin: fields
+            row_plugin: node
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_pager_none
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_pager_some.yml
similarity index 69%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_pager_some.yml
index d9d4c11..ac44377 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_pager_some.yml
@@ -13,13 +13,16 @@ display:
             exposed_form:
                 type: basic
             pager:
-                type: none
-            row_plugin: fields
+                options:
+                    items_per_page: '5'
+                    offset: '0'
+                type: some
+            row_plugin: node
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_pager_some
 tag: ''
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml
similarity index 78%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml
index 9e589ee..302b4a8 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml
@@ -9,11 +9,14 @@ display:
             access:
                 type: none
             arguments:
-                uid:
+                'null':
                     default_action: default
-                    field: uid
-                    id: uid
-                    table: node
+                    default_argument_type: current_user
+                    field: 'null'
+                    id: 'null'
+                    must_not_be: '0'
+                    style_plugin: default_summary
+                    table: views
             cache:
                 type: none
             exposed_form:
@@ -46,6 +49,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_plugin_argument_default_current_user
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_store_pager_settings.yml
similarity index 85%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_store_pager_settings.yml
index d9d4c11..d7f9b33 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_store_pager_settings.yml
@@ -14,12 +14,12 @@ display:
                 type: basic
             pager:
                 type: none
-            row_plugin: fields
+            row_plugin: node
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_store_pager_settings
 tag: ''
diff --git a/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml b/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml
new file mode 100644
index 0000000..0c3b897
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml
@@ -0,0 +1,65 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: perm
+            arguments:
+                tid:
+                    default_argument_type: fixed
+                    field: tid
+                    id: tid
+                    relationship: term_node_tid
+                    summary:
+                        format: default_summary
+                        number_of_records: '0'
+                    summary_options:
+                        items_per_page: '25'
+                    table: taxonomy_term_data
+                tid_1:
+                    default_argument_type: fixed
+                    field: tid
+                    id: tid_1
+                    relationship: term_node_tid_1
+                    summary:
+                        format: default_summary
+                        number_of_records: '0'
+                    summary_options:
+                        items_per_page: '25'
+                    table: taxonomy_term_data
+            cache:
+                type: none
+            exposed_form:
+                type: basic
+            pager:
+                type: full
+            query:
+                type: views_query
+            relationships:
+                term_node_tid:
+                    field: term_node_tid
+                    id: term_node_tid
+                    label: 'Term #1'
+                    table: node
+                    vocabularies:
+                        tags: '0'
+                term_node_tid_1:
+                    field: term_node_tid
+                    id: term_node_tid_1
+                    label: 'Term #2'
+                    table: node
+                    vocabularies:
+                        tags: '0'
+            row_plugin: node
+            style_plugin: default
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: test_taxonomy_node_term_data
+name: test_taxonomy_node_term_data
+tag: ''
diff --git a/tests/views_test_config/config/views.view.test_user_relationship.yml b/tests/views_test_config/config/views.view.test_user_relationship.yml
new file mode 100644
index 0000000..e37718a
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_user_relationship.yml
@@ -0,0 +1,100 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: perm
+            cache:
+                type: none
+            exposed_form:
+                type: basic
+            fields:
+                name:
+                    alter:
+                        absolute: '0'
+                        alter_text: '0'
+                        ellipsis: '1'
+                        external: '0'
+                        html: '0'
+                        make_link: '0'
+                        nl2br: '0'
+                        replace_spaces: '0'
+                        strip_tags: '0'
+                        trim: '0'
+                        trim_whitespace: '0'
+                        word_boundary: '1'
+                    element_default_classes: '1'
+                    element_label_colon: '1'
+                    empty_zero: '0'
+                    field: name
+                    hide_alter_empty: '0'
+                    hide_empty: '0'
+                    id: name
+                    link_to_user: '1'
+                    overwrite_anonymous: '0'
+                    table: users
+                title:
+                    alter:
+                        absolute: '0'
+                        alter_text: '0'
+                        ellipsis: '0'
+                        html: '0'
+                        make_link: '0'
+                        strip_tags: '0'
+                        trim: '0'
+                        word_boundary: '0'
+                    empty_zero: '0'
+                    field: title
+                    hide_empty: '0'
+                    id: title
+                    label: ''
+                    link_to_node: '1'
+                    table: node
+                uid:
+                    alter:
+                        absolute: '0'
+                        alter_text: '0'
+                        ellipsis: '1'
+                        external: '0'
+                        html: '0'
+                        make_link: '0'
+                        nl2br: '0'
+                        replace_spaces: '0'
+                        strip_tags: '0'
+                        trim: '0'
+                        trim_whitespace: '0'
+                        word_boundary: '1'
+                    element_default_classes: '1'
+                    element_label_colon: '1'
+                    empty_zero: '0'
+                    field: uid
+                    hide_alter_empty: '0'
+                    hide_empty: '0'
+                    id: uid
+                    link_to_user: '1'
+                    table: users
+            pager:
+                options:
+                    items_per_page: '10'
+                type: full
+            query:
+                options:
+                    query_comment: '0'
+                type: views_query
+            row_options:
+                default_field_elements: '1'
+                hide_empty: '0'
+            row_plugin: fields
+            style_plugin: default
+            title: test_user_relationship
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: test_user_relationship
+name: test_user_relationship
+tag: default
diff --git a/tests/views_test_config/config/views.view.test_view.yml b/tests/views_test_config/config/views.view.test_view.yml
new file mode 100644
index 0000000..821b50c
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_view.yml
@@ -0,0 +1,48 @@
+api_version: '3.0'
+base_table: views_test
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            defaults:
+                fields: '0'
+                pager: '0'
+                pager_options: '0'
+                sorts: '0'
+            fields:
+                age:
+                    field: age
+                    id: age
+                    relationship: none
+                    table: views_test
+                id:
+                    field: id
+                    id: id
+                    relationship: none
+                    table: views_test
+                name:
+                    field: name
+                    id: name
+                    relationship: none
+                    table: views_test
+            pager:
+                options:
+                    offset: '0'
+                type: none
+            pager_options: {  }
+            sorts:
+                id:
+                    field: id
+                    id: id
+                    order: ASC
+                    relationship: none
+                    table: views_test
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: ''
+name: test_view
+tag: ''
diff --git a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml
similarity index 51%
copy from tests/views_test/config/views.view.test_filter_in_operator_ui.yml
copy to tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml
index 99140dc..1207664 100644
--- a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml
+++ b/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml
@@ -8,22 +8,20 @@ display:
         display_options:
             access:
                 type: none
+            arguments:
+                'null':
+                    default_argument_type: fixed
+                    field: 'null'
+                    id: 'null'
+                    must_not_be: '0'
+                    style_plugin: default_summary
+                    table: views
+                    validate:
+                        type: numeric
             cache:
                 type: none
             exposed_form:
                 type: basic
-            filters:
-                type:
-                    expose:
-                        identifier: type
-                        label: 'Content: Type'
-                        operator_id: type_op
-                        reduce: '0'
-                        use_operator: '0'
-                    exposed: '1'
-                    field: type
-                    id: type
-                    table: node
             pager:
                 type: full
             row_plugin: fields
@@ -32,6 +30,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_filter_in_operator_ui
+human_name: ''
+name: test_view_argument_validate_numeric
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml
similarity index 52%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_view_argument_validate_php.yml
index d9d4c11..477cc22 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml
@@ -8,18 +8,28 @@ display:
         display_options:
             access:
                 type: none
+            arguments:
+                'null':
+                    default_argument_type: fixed
+                    field: 'null'
+                    id: 'null'
+                    must_not_be: '0'
+                    style_plugin: default_summary
+                    table: views
+                    validate:
+                        type: php
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_view_argument_validate_numeric
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml
similarity index 52%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_view_argument_validate_user.yml
index d9d4c11..fecba82 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml
@@ -8,18 +8,28 @@ display:
         display_options:
             access:
                 type: none
+            arguments:
+                'null':
+                    default_argument_type: fixed
+                    field: 'null'
+                    id: 'null'
+                    must_not_be: '0'
+                    style_plugin: default_summary
+                    table: views
+                    validate:
+                        type: user
             cache:
                 type: none
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: ''
+name: test_view_argument_validate_user
 tag: ''
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_config/config/views.view.test_view_delete.yml
similarity index 72%
copy from tests/views_test/config/views.view.test_views_groupby_save.yml
copy to tests/views_test_config/config/views.view.test_view_delete.yml
index d9d4c11..ea6dd9e 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_config/config/views.view.test_view_delete.yml
@@ -13,13 +13,15 @@ display:
             exposed_form:
                 type: basic
             pager:
-                type: none
+                type: full
+            query:
+                type: views_query
             row_plugin: fields
             style_plugin: default
         display_plugin: default
-        display_title: Master
+        display_title: Defaults
         id: default
         position: '0'
-human_name: {  }
-name: test_views_groupby_save
+human_name: test_view_delete
+name: test_view_delete
 tag: ''
diff --git a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml b/tests/views_test_config/config/views.view.test_view_fieldapi.yml
similarity index 51%
copy from tests/views_test/config/views.view.test_filter_in_operator_ui.yml
copy to tests/views_test_config/config/views.view.test_view_fieldapi.yml
index 99140dc..d82dab1 100644
--- a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml
+++ b/tests/views_test_config/config/views.view.test_view_fieldapi.yml
@@ -7,31 +7,32 @@ display:
     default:
         display_options:
             access:
-                type: none
+                type: perm
+            fields:
+                nid:
+                    field: nid
+                    id: nid
+                    table: node
             cache:
                 type: none
             exposed_form:
                 type: basic
-            filters:
-                type:
-                    expose:
-                        identifier: type
-                        label: 'Content: Type'
-                        operator_id: type_op
-                        reduce: '0'
-                        use_operator: '0'
-                    exposed: '1'
-                    field: type
-                    id: type
+            fields:
+                nid:
+                    field: nid
+                    id: nid
                     table: node
             pager:
                 type: full
+            query:
+                type: views_query
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_filter_in_operator_ui
-tag: ''
+human_name: test_view_fieldapi
+name: test_view_fieldapi
+tag: default
+
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml
similarity index 80%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml
index 9e589ee..a8149c8 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml
@@ -8,12 +8,6 @@ display:
         display_options:
             access:
                 type: none
-            arguments:
-                uid:
-                    default_action: default
-                    field: uid
-                    id: uid
-                    table: node
             cache:
                 type: none
             exposed_form:
@@ -37,7 +31,7 @@ display:
             pager:
                 options:
                     id: '0'
-                    items_per_page: '10'
+                    items_per_page: '0'
                     offset: '0'
                 type: full
             row_plugin: fields
@@ -46,6 +40,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
+human_name: ''
+name: test_view_pager_full_zero_items_per_page
 tag: ''
diff --git a/tests/views_test_config/config/views.view.test_view_unpack_translatable.yml b/tests/views_test_config/config/views.view.test_view_unpack_translatable.yml
new file mode 100644
index 0000000..1c38165
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_view_unpack_translatable.yml
@@ -0,0 +1,80 @@
+api_version: '3.0'
+base_table: node
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            access:
+                type: none
+            cache:
+                type: none
+            exposed_form:
+                options:
+                    exposed_sorts_label: 'Sort By1'
+                    reset_button: '1'
+                    reset_button_label: Reset1
+                    sort_asc_label: Asc1
+                    sort_desc_label: Desc1
+                    submit_button: Apply1
+                type: basic
+            fields:
+                nid:
+                    alter:
+                        alter_text: '0'
+                        ellipsis: '1'
+                        html: '0'
+                        make_link: '0'
+                        strip_tags: '0'
+                        trim: '0'
+                        word_boundary: '1'
+                    empty_zero: '0'
+                    field: nid
+                    hide_empty: '0'
+                    id: nid
+                    label: fieldlabel1
+                    link_to_node: '0'
+                    table: node
+            filters:
+                nid:
+                    expose:
+                        identifier: nid
+                        label: filterlabel1
+                        multiple: '1'
+                        operator_id: nid_op
+                        reduce: '0'
+                    exposed: '1'
+                    field: nid
+                    id: nid
+                    table: node
+            pager:
+                options:
+                    expose:
+                        items_per_page: '1'
+                        items_per_page_label: 'Items per page1'
+                        offset: '1'
+                        offset_label: Offset1
+                    id: '0'
+                    items_per_page: '10'
+                    offset: '0'
+                    quantity: '9'
+                    tags:
+                        first: 'Tag first1'
+                        last: 'Tag last1'
+                        next: 'Tag next1'
+                        previous: 'Tag prev1'
+                type: full
+            query:
+                type: views_query
+            row_plugin: fields
+            style_plugin: default
+            title: title1
+            use_more_text: more1
+        display_plugin: default
+        display_title: Master1
+        id: default
+        position: '0'
+human_name: ''
+name: test_view_unpack_translatable
+tag: ''
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml
similarity index 57%
copy from tests/views_test/config/views.view.test_argument_default_current_user.yml
copy to tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml
index 9e589ee..a3dd693 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml
@@ -1,5 +1,5 @@
 api_version: '3.0'
-base_table: node
+base_table: users
 core: '8'
 description: ''
 disabled: '0'
@@ -8,44 +8,41 @@ display:
         display_options:
             access:
                 type: none
-            arguments:
-                uid:
-                    default_action: default
-                    field: uid
-                    id: uid
-                    table: node
             cache:
                 type: none
             exposed_form:
                 type: basic
             fields:
-                title:
+                name:
                     alter:
+                        absolute: '0'
                         alter_text: '0'
-                        ellipsis: '1'
+                        ellipsis: '0'
                         html: '0'
                         make_link: '0'
                         strip_tags: '0'
                         trim: '0'
-                        word_boundary: '1'
+                        word_boundary: '0'
                     empty_zero: '0'
-                    field: title
+                    field: name
                     hide_empty: '0'
-                    id: title
-                    link_to_node: '0'
-                    table: node
+                    id: name
+                    label: ''
+                    link_to_user: '1'
+                    overwrite_anonymous: '0'
+                    table: users
             pager:
-                options:
-                    id: '0'
-                    items_per_page: '10'
-                    offset: '0'
                 type: full
+            query:
+                options:
+                    query_comment: '0'
+                type: views_query
             row_plugin: fields
             style_plugin: default
         display_plugin: default
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
-name: test_argument_default_current_user
-tag: ''
+human_name: test_views_handler_field_user_name
+name: test_views_handler_field_user_name
+tag: default
diff --git a/tests/views_test_config/config/views.view.test_views_move_to_field.yml b/tests/views_test_config/config/views.view.test_views_move_to_field.yml
new file mode 100644
index 0000000..6d8509a
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_views_move_to_field.yml
@@ -0,0 +1,20 @@
+api_version: '3.0'
+base_table: views_test
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            fields:
+                old_field_1:
+                    field: old_field_1
+                    id: old_field_1
+                    table: views_test
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: ''
+name: test_views_move_to_field
+tag: ''
diff --git a/tests/views_test_config/config/views.view.test_views_move_to_handler.yml b/tests/views_test_config/config/views.view.test_views_move_to_handler.yml
new file mode 100644
index 0000000..b33937e
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_views_move_to_handler.yml
@@ -0,0 +1,25 @@
+api_version: '3.0'
+base_table: views_test
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            fields:
+                old_field_2:
+                    field: old_field_2
+                    id: old_field_2
+                    table: views_test
+            filters:
+                old_field_3:
+                    field: old_field_3
+                    id: old_field_3
+                    table: views_test
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: ''
+name: test_views_move_to_handler
+tag: ''
diff --git a/tests/views_test_config/config/views.view.test_views_move_to_table.yml b/tests/views_test_config/config/views.view.test_views_move_to_table.yml
new file mode 100644
index 0000000..2a2637a
--- /dev/null
+++ b/tests/views_test_config/config/views.view.test_views_move_to_table.yml
@@ -0,0 +1,20 @@
+api_version: '3.0'
+base_table: views_old_table
+core: '8'
+description: ''
+disabled: '0'
+display:
+    default:
+        display_options:
+            fields:
+                id:
+                    field: id
+                    id: id
+                    table: views_old_table
+        display_plugin: default
+        display_title: Master
+        id: default
+        position: '0'
+human_name: ''
+name: test_views_move_to_table
+tag: ''
diff --git a/tests/views_test_config/views_test_config.info b/tests/views_test_config/views_test_config.info
new file mode 100644
index 0000000..0e3f068
--- /dev/null
+++ b/tests/views_test_config/views_test_config.info
@@ -0,0 +1,4 @@
+name = Views Test Config
+description = Provides default views for tests.
+core = 8.x
+hidden = TRUE
diff --git a/tests/views_test_config/views_test_config.module b/tests/views_test_config/views_test_config.module
new file mode 100644
index 0000000..b3d9bbc
--- /dev/null
+++ b/tests/views_test_config/views_test_config.module
@@ -0,0 +1 @@
+<?php
diff --git a/tests/views_test/config/views.view.test_argument_default_current_user.yml b/tests/views_test_data/config/views.view.test_argument_default_current_user.yml
similarity index 98%
rename from tests/views_test/config/views.view.test_argument_default_current_user.yml
rename to tests/views_test_data/config/views.view.test_argument_default_current_user.yml
index 9e589ee..6ab4fa4 100644
--- a/tests/views_test/config/views.view.test_argument_default_current_user.yml
+++ b/tests/views_test_data/config/views.view.test_argument_default_current_user.yml
@@ -46,6 +46,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
+human_name: ''
 name: test_argument_default_current_user
 tag: ''
diff --git a/tests/views_test/config/views.view.test_exposed_admin_ui.yml b/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml
similarity index 98%
rename from tests/views_test/config/views.view.test_exposed_admin_ui.yml
rename to tests/views_test_data/config/views.view.test_exposed_admin_ui.yml
index 22bb89f..3ec858e 100644
--- a/tests/views_test/config/views.view.test_exposed_admin_ui.yml
+++ b/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml
@@ -46,6 +46,6 @@ display:
         display_title: Page
         id: page_1
         position: '0'
-human_name: {  }
+human_name: ''
 name: test_exposed_admin_ui
 tag: ''
diff --git a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml b/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml
similarity index 98%
rename from tests/views_test/config/views.view.test_filter_in_operator_ui.yml
rename to tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml
index 99140dc..cb20dbf 100644
--- a/tests/views_test/config/views.view.test_filter_in_operator_ui.yml
+++ b/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml
@@ -32,6 +32,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
+human_name: ''
 name: test_filter_in_operator_ui
 tag: ''
diff --git a/tests/views_test/config/views.view.test_page_display.yml b/tests/views_test_data/config/views.view.test_page_display.yml
similarity index 96%
rename from tests/views_test/config/views.view.test_page_display.yml
rename to tests/views_test_data/config/views.view.test_page_display.yml
index d80c27e..dfd68ff 100644
--- a/tests/views_test/config/views.view.test_page_display.yml
+++ b/tests/views_test_data/config/views.view.test_page_display.yml
@@ -28,6 +28,6 @@ display:
         display_title: Page
         id: page_2
         position: '0'
-human_name: {  }
+human_name: ''
 name: test_page_display
-tag: ''
\ No newline at end of file
+tag: ''
diff --git a/tests/views_test/config/views.view.test_rename_reset_button.yml b/tests/views_test_data/config/views.view.test_rename_reset_button.yml
similarity index 100%
rename from tests/views_test/config/views.view.test_rename_reset_button.yml
rename to tests/views_test_data/config/views.view.test_rename_reset_button.yml
diff --git a/tests/views_test/config/views.view.test_views_groupby_save.yml b/tests/views_test_data/config/views.view.test_views_groupby_save.yml
similarity index 96%
rename from tests/views_test/config/views.view.test_views_groupby_save.yml
rename to tests/views_test_data/config/views.view.test_views_groupby_save.yml
index d9d4c11..b38261b 100644
--- a/tests/views_test/config/views.view.test_views_groupby_save.yml
+++ b/tests/views_test_data/config/views.view.test_views_groupby_save.yml
@@ -20,6 +20,6 @@ display:
         display_title: Master
         id: default
         position: '0'
-human_name: {  }
+human_name: ''
 name: test_views_groupby_save
 tag: ''
diff --git a/tests/views_test/lib/Drupal/views_test/Plugin/views/access/DynamicTest.php b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
similarity index 80%
rename from tests/views_test/lib/Drupal/views_test/Plugin/views/access/DynamicTest.php
rename to tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
index 7466615..1704661 100644
--- a/tests/views_test/lib/Drupal/views_test/Plugin/views/access/DynamicTest.php
+++ b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\views_test\Plugin\views\access\DynamicTest.
+ * Definition of Drupal\views_test_data\Plugin\views\access\DynamicTest.
  */
 
-namespace Drupal\views_test\Plugin\views\access;
+namespace Drupal\views_test_data\Plugin\views\access;
 
 use Drupal\Core\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
@@ -34,7 +34,7 @@ public function access($account) {
   }
 
   function get_access_callback() {
-    return array('views_test_test_dynamic_access_callback', array(!empty($options['access']), 1, 2));
+    return array('views_test_data_test_dynamic_access_callback', array(!empty($options['access']), 1, 2));
   }
 
 }
diff --git a/tests/views_test/lib/Drupal/views_test/Plugin/views/access/StaticTest.php b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
similarity index 75%
rename from tests/views_test/lib/Drupal/views_test/Plugin/views/access/StaticTest.php
rename to tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
index 61ea392..5f5770c 100644
--- a/tests/views_test/lib/Drupal/views_test/Plugin/views/access/StaticTest.php
+++ b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\views_test\Plugin\views\access\StaticTest.
+ * Definition of Drupal\views_test_data\Plugin\views\access\StaticTest.
  */
 
-namespace Drupal\views_test\Plugin\views\access;
+namespace Drupal\views_test_data\Plugin\views\access;
 
 use Drupal\Core\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
@@ -34,7 +34,7 @@ public function access($account) {
   }
 
   function get_access_callback() {
-    return array('views_test_test_static_access_callback', array(!empty($options['access'])));
+    return array('views_test_data_test_static_access_callback', array(!empty($options['access'])));
   }
 
 }
diff --git a/tests/views_test/lib/Drupal/views_test/Plugin/views/localization/LocalizationTest.php b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/localization/LocalizationTest.php
similarity index 88%
rename from tests/views_test/lib/Drupal/views_test/Plugin/views/localization/LocalizationTest.php
rename to tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/localization/LocalizationTest.php
index 1cdb9fa..ce427dd 100644
--- a/tests/views_test/lib/Drupal/views_test/Plugin/views/localization/LocalizationTest.php
+++ b/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/localization/LocalizationTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\views_test\Plugin\views\localization\LocalizationTest.
+ * Definition of Drupal\views_test_data\Plugin\views\localization\LocalizationTest.
  */
 
-namespace Drupal\views_test\Plugin\views\localization;
+namespace Drupal\views_test_data\Plugin\views\localization;
 
 use Drupal\Core\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
diff --git a/tests/views_test/templates/views-view--frontpage.tpl.php b/tests/views_test_data/templates/views-view--frontpage.tpl.php
similarity index 100%
rename from tests/views_test/templates/views-view--frontpage.tpl.php
rename to tests/views_test_data/templates/views-view--frontpage.tpl.php
diff --git a/tests/views_test/views_cache.test.css b/tests/views_test_data/views_cache.test.css
similarity index 100%
rename from tests/views_test/views_cache.test.css
rename to tests/views_test_data/views_cache.test.css
diff --git a/tests/views_test/views_cache.test.js b/tests/views_test_data/views_cache.test.js
similarity index 100%
rename from tests/views_test/views_cache.test.js
rename to tests/views_test_data/views_cache.test.js
diff --git a/tests/views_test/views_test.info b/tests/views_test_data/views_test_data.info
similarity index 100%
rename from tests/views_test/views_test.info
rename to tests/views_test_data/views_test_data.info
diff --git a/tests/views_test/views_test.install b/tests/views_test_data/views_test_data.install
similarity index 83%
rename from tests/views_test/views_test.install
rename to tests/views_test_data/views_test_data.install
index b0ccd8b..c4153cf 100644
--- a/tests/views_test/views_test.install
+++ b/tests/views_test_data/views_test_data.install
@@ -8,6 +8,6 @@
 /**
  * Implements hook_schema().
  */
-function views_test_schema() {
+function views_test_data_schema() {
   return variable_get('views_test_schema', array());
 }
diff --git a/tests/views_test/views_test.module b/tests/views_test_data/views_test_data.module
similarity index 68%
rename from tests/views_test/views_test.module
rename to tests/views_test_data/views_test_data.module
index 0eebad7..3583229 100644
--- a/tests/views_test/views_test.module
+++ b/tests/views_test_data/views_test_data.module
@@ -5,10 +5,12 @@
  * Helper module for Views tests.
  */
 
+use Drupal\views\View;
+
 /**
  * Implements hook_permission().
  */
-function views_test_permission() {
+function views_test_data_permission() {
   return array(
     'views_test test permission' => array(
       'title' => t('Test permission'),
@@ -20,32 +22,32 @@ function views_test_permission() {
 /**
  * Implements hook_views_api().
  */
-function views_test_views_api() {
+function views_test_data_views_api() {
   return array(
     'api' => 3.0,
-    'template path' => drupal_get_path('module', 'views_test') . '/templates',
+    'template path' => drupal_get_path('module', 'views_test_data') . '/templates',
   );
 }
 
 /**
  * Implements hook_views_data().
  */
-function views_test_views_data() {
-  return  variable_get('views_test_views_data', array());
+function views_test_data_views_data() {
+  return variable_get('views_test_views_data', array());
 }
 
-function views_test_test_static_access_callback($access) {
+function views_test_data_test_static_access_callback($access) {
   return $access;
 }
 
-function views_test_test_dynamic_access_callback($access, $argument1, $argument2) {
+function views_test_data_test_dynamic_access_callback($access, $argument1, $argument2) {
   return $access && $argument1 == variable_get('test_dynamic_access_argument1', NULL) && $argument2 == variable_get('test_dynamic_access_argument2', NULL);
 }
 
 /**
  * Implements hook_views_pre_render().
  */
-function views_test_views_pre_render(&$view) {
+function views_test_data_views_pre_render(&$view) {
   if ($view->name == 'test_cache_header_storage') {
     drupal_add_js(drupal_get_path('module', 'views_test') . '/views_cache.test.js');
     drupal_add_css(drupal_get_path('module', 'views_test') . '/views_cache.test.css');
@@ -56,8 +58,7 @@ function views_test_views_pre_render(&$view) {
 /**
  * Implements hook_views_post_build().
  */
-function views_test_views_post_build(Drupal\views\View &$view) {
-  debug($view->current_display);
+function views_test_data_views_post_build(View &$view) {
   if ($view->name == 'test_page_display') {
     if ($view->current_display == 'page_1') {
       $view->build_info['denied'] = TRUE;
