Version 1
[yaffs-website] / web / core / modules / views / tests / src / Functional / Handler / ArgumentStringTest.php
diff --git a/web/core/modules/views/tests/src/Functional/Handler/ArgumentStringTest.php b/web/core/modules/views/tests/src/Functional/Handler/ArgumentStringTest.php
new file mode 100644 (file)
index 0000000..17ece94
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+namespace Drupal\Tests\views\Functional\Handler;
+
+use Drupal\Tests\views\Functional\ViewTestBase;
+use Drupal\views\Views;
+
+/**
+ * Tests the core Drupal\views\Plugin\views\argument\StringArgument handler.
+ *
+ * @group views
+ */
+class ArgumentStringTest extends ViewTestBase {
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = ['test_glossary'];
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['node'];
+
+  /**
+   * Tests the glossary feature.
+   */
+  public function testGlossary() {
+    // Setup some nodes, one with a, two with b and three with c.
+    $counter = 1;
+    foreach (['a', 'b', 'c'] as $char) {
+      for ($i = 0; $i < $counter; $i++) {
+        $edit = [
+          'title' => $char . $this->randomMachineName(),
+        ];
+        $this->drupalCreateNode($edit);
+      }
+    }
+
+    $view = Views::getView('test_glossary');
+    $this->executeView($view);
+
+    $count_field = 'nid';
+    foreach ($view->result as &$row) {
+      if (strpos($view->field['title']->getValue($row), 'a') === 0) {
+        $this->assertEqual(1, $row->{$count_field});
+      }
+      if (strpos($view->field['title']->getValue($row), 'b') === 0) {
+        $this->assertEqual(2, $row->{$count_field});
+      }
+      if (strpos($view->field['title']->getValue($row), 'c') === 0) {
+        $this->assertEqual(3, $row->{$count_field});
+      }
+    }
+  }
+
+}