From fcf7755e2f665c5d7d07bb54edefc80ced86fa4e Mon Sep 17 00:00:00 2001
From: Bram Goffings <bramgoffings@gmail.com>
Date: Mon, 2 Jul 2012 10:28:15 +0200
Subject: [PATCH] external menu link tests

---
 .../menu/lib/Drupal/menu/Tests/MenuTest.php        |   28 +++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
index 4cdf809..93d5efc 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
@@ -228,6 +228,10 @@ class MenuTest extends WebTestBase {
     $this->assertMenuLink($item4['mlid'], array('depth' => 1, 'has_children' => 1, 'p1' => $item4['mlid'], 'p2' => 0));
     $this->assertMenuLink($item5['mlid'], array('depth' => 2, 'has_children' => 0, 'p1' => $item4['mlid'], 'p2' => $item5['mlid'], 'p3' => 0));
 
+    // External menu link
+    $item6 = $this->addMenuLink(0, 'http://example.org', $menu_name);
+    $this->verifyExternalMenuLink($item6);
+
     // Modify menu links.
     $this->modifyMenuLink($item1);
     $this->modifyMenuLink($item2);
@@ -324,7 +328,7 @@ class MenuTest extends WebTestBase {
    * @param string $menu_name Menu name.
    */
   function addInvalidMenuLink($menu_name = 'navigation') {
-    foreach (array('-&-', 'admin/people/permissions', '#') as $link_path) {
+    foreach (array('-&-', 'admin/people/permissions', '#', 'www.drupal.org') as $link_path) {
       $edit = array(
         'link_path' => $link_path,
         'link_title' => 'title',
@@ -370,6 +374,28 @@ class MenuTest extends WebTestBase {
   }
 
   /**
+   * Verifies an external menu link using the menu module UI.
+   *
+   * @param $link
+   *   Menu link.
+   */
+  function verifyExternalMenuLink($link) {
+    // View home page.
+    $this->drupalGet('');
+    $this->assertResponse(200);
+
+    // Verify menu link.
+    $title = $link['link_title'];
+    $this->assertText($title, 'Menu link was displayed');
+
+    // Verify menu link link.
+    $this->clickLink($title);
+    $title = 'IANA — Example domains';
+    $this->assertTitle($title, t('External menu link link title was correct'));
+    $this->assertTrue($this->getUrl() == 'http://www.iana.org/domains/example/', t('External menu link URL was correct'));
+  }
+
+  /**
    * Change the parent of a menu link using the menu module UI.
    */
   function moveMenuLink($item, $plid, $menu_name) {
-- 
1.7.4.msysgit.0

