Version 1
[yaffs-website] / vendor / drush / drush / tests / watchdogTest.php
diff --git a/vendor/drush/drush/tests/watchdogTest.php b/vendor/drush/drush/tests/watchdogTest.php
new file mode 100644 (file)
index 0000000..dc3feda
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+namespace Unish;
+
+/**
+ * @group commands
+ */
+class WatchdogCase extends CommandUnishTestCase {
+
+  function  testWatchdog() {
+    $sites = $this->setUpDrupal(1, TRUE);
+    $options = array(
+      'yes' => NULL,
+      'root' => $this->webroot(),
+      'uri' => key($sites),
+    );
+
+    if (UNISH_DRUPAL_MAJOR_VERSION >= 7) {
+      $this->drush('pm-enable', array('dblog'), $options);
+    }
+    if (UNISH_DRUPAL_MAJOR_VERSION >= 8) {
+      $eval1 = "\\Drupal::logger('drush')->notice('Unish rocks.');";
+    }
+    else {
+      $eval1 = "watchdog('drush', 'Unish rocks.');";
+    }
+    $this->drush('php-eval', array($eval1), $options);
+    $this->drush('watchdog-show', array(), $options + array('count' => 50));
+    $output = $this->getOutput();
+    $this->assertContains('Unish rocks.', $output);
+
+    // Add a new entry with a long message with the letter 'd' and verify that watchdog-show does
+    // not print it completely in the listing unless --full is given.
+    // As the output is formatted so lines may be splitted, assertContains does not work
+    // in this scenario. Therefore, we will count the number of times a character is present.
+    $message_chars = 300;
+    $char = '*';
+    $message = str_repeat($char, $message_chars);
+    if (UNISH_DRUPAL_MAJOR_VERSION >= 8) {
+      $eval2 = "\\Drupal::logger('drush')->notice('$message');";
+    }
+    else {
+      $eval2 = "watchdog('drush', '$message');";
+    }
+    $this->drush('php-eval', array($eval2), $options);
+    $this->drush('watchdog-show', array(), $options);
+    $output = $this->getOutput();
+    $this->assertGreaterThan(substr_count($output, $char), $message_chars);
+    $this->drush('watchdog-show', array(), $options + array('extended' => NULL));
+    $output = $this->getOutput();
+    $this->assertGreaterThanOrEqual($message_chars, substr_count($output, $char));
+
+    // Tests message deletion
+    $this->drush('watchdog-delete', array('all'), $options);
+    $output = $this->getOutput();
+    $this->drush('watchdog-show', array(), $options);
+    $output = $this->getOutput();
+    $this->assertEmpty($output);
+  }
+}