Title: [opsview] [13289] Merge of 12799 from DEV-professional, but this test is currently broken.
Revision
13289
Author
tvoon
Date
2013-08-15 20:26:00 +0100 (Thu, 15 Aug 2013)

Log Message

Merge of 12799 from DEV-professional, but this test is currently broken. Needs attention post-merge

Modified Paths

Property Changed


Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10622,10932,11025,11035,11360-11612,11798-11799,11920,12075-12076,12096,12189,12207,12232,12266,12288,12322,12334,12355,12372,12401-12406,12428,12491,12523,12539-12540,12544,12546,12555,12580,12583,12599-12600,12609,12611,12614-12615,12618,12624,12630-12631,12633,12643,12645-12646,12649,12653-12654,12657-12658,12660,12662-12663,12666,12668,12678-
 12679,12681-12682,12685,12687,12691-12693,12697,12703,12721,12724-12725,12731-12732,12737-12739,12741,12743-12744,12746,12750,12754-12756,12759,12764-12765,12770,12772-12776,12784,12787-12788,12795,13126-13127,13211
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/BRAN-4.3:12423-12426
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837
   + /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10622,10932,11025,11035,11360-11612,11798-11799,11920,12075-12076,12096,12189,12207,12232,12266,12288,12322,12334,12355,12372,12401-12406,12428,12491,12523,12539-12540,12544,12546,12555,12580,12583,12599-12600,12609,12611,12614-12615,12618,12624,12630-12631,12633,12643,12645-12646,12649,12653-12654,12657-12658,12660,12662-12663,12666,12668,12678-
 12679,12681-12682,12685,12687,12691-12693,12697,12703,12721,12724-12725,12731-12732,12737-12739,12741,12743-12744,12746,12750,12754-12756,12759,12764-12765,12770,12772-12776,12784,12787-12788,12795,12797,13126-13127,13211
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/BRAN-4.3:12423-12426
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837

Modified: trunk/opsview-web/t/721navigation.t
===================================================================
--- trunk/opsview-web/t/721navigation.t	2013-08-15 18:59:29 UTC (rev 13288)
+++ trunk/opsview-web/t/721navigation.t	2013-08-15 19:26:00 UTC (rev 13289)
@@ -12,7 +12,7 @@
 use Test::More qw(no_plan);
 use Test::Deep;
 
-use Opsview::Test;
+use Opsview::Test qw(opsview);
 use Test::WWW::Mechanize::Catalyst qw(Opsview::Web);
 use lib "$Bin/lib";
 use Opsview::TestUtils;
@@ -40,12 +40,36 @@
 my $viewkeywords = Test::WWW::Mechanize::Catalyst->new;
 log_in( $viewkeywords, "viewkeywords", "viewkeywords" );
 
-sub show_current_navigation {
+sub by_links {
+    $a->[0] cmp $b->[0]
+      || $a->[1] cmp $b->[1];
+}
+
+# Removes changing values in links and returns an array for comparison
+sub cleanup_links {
     my $mech = shift;
+    my @got  = map {
+        my $u = $_->url;
+        $u =~ s/hosthash=[A-Z0-9]{32}/hosthash=NORMALISED/;
+        $u =~ s/opsview4\.\d+/opsview4.X/g;
+        [ $_->text => $u ]
+    } $mech->followable_links;
+    @got = sort by_links @got;
+    return @got;
+}
 
-    for my $link ( $mech->followable_links ) {
-        my $text = $link->text;
-        my $url  = ""
+# Enter the mech as the 2nd parameter to get the old style output
+sub show_current_navigation {
+    my ( $list, $mech ) = shift;
+
+    my $use_mech;
+    if ($mech) {
+        $list = [ $mech->followable_links ];
+        $use_mech++;
+    }
+    for my $link (@$list) {
+        my $text = $use_mech ? $link->text : $link->[0];
+        my $url  = "" ? $link->url  : $link->[1];
         if ( $url =~ /hosthash=/ ) {
             $url =~ s/\./\\./g;
             $url =~ s/\?/\\?/g;
@@ -69,8 +93,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'admin' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -122,26 +146,26 @@
         [ 'Configuration status' => '/admin/reload' ],
         [ 'Reload' => '/admin/reload' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview-core' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
 
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $admin->followable_links ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($admin);
+    my @got = cleanup_links($admin);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - demo" => sub {
@@ -150,8 +174,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'demo' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -175,7 +199,6 @@
         [ 'Notifications' => '/cgi-bin/notifications.cgi' ],
         [ 'Alert Summary' => '/cgi-bin/summary.cgi' ],
         [ 'Alert Histogram' => '/cgi-bin/avail.cgi' ],
-        [ 'Nagvis' => '/modules/nagvis' ],
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'Hosts' => '/admin/host/list' ],
         [ 'Host Templates' => '/admin/hosttemplate/list' ],
@@ -194,25 +217,25 @@
         [ 'Host Check Commands' => '/admin/hostcheckcommands' ],
         [ 'Time Periods' => '/admin/timeperiod/list' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview-core' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $demo->followable_links ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($demo);
+    my @got = cleanup_links($demo);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - somehosts" => sub {
@@ -221,8 +244,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'somehosts' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -250,25 +273,25 @@
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'Hosts' => '/admin/host/list' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $somehosts->followable_links() ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($somehosts);
+    my @got = cleanup_links($somehosts);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - readonly" => sub {
@@ -277,8 +300,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'readonly' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -303,28 +326,27 @@
         [ 'Notifications' => '/cgi-bin/notifications.cgi' ],
         [ 'Alert Summary' => '/cgi-bin/summary.cgi' ],
         [ 'Alert Histogram' => '/cgi-bin/avail.cgi' ],
-        [ 'Nagvis' => '/modules/nagvis' ],
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $readonly->followable_links() ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($readonly);
+    my @got = cleanup_links($readonly);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - viewsomechangenone" => sub {
@@ -333,8 +355,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'viewsomechangenone' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -361,29 +383,25 @@
         [ 'Nagvis' => '/modules/nagvis' ],
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [
-            map { [ $_->text => $_->url ] }
-              $viewsomechangenone->followable_links()
-        ],
-        bag(@expected),
-        "Navigation links as expected",
-    ) or show_current_navigation($viewsomechangenone);
+    my @got = cleanup_links($viewsomechangenone);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - adminnoc" => sub {
@@ -392,8 +410,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'adminnoc' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -417,7 +435,6 @@
         [ 'Notifications' => '/cgi-bin/notifications.cgi' ],
         [ 'Alert Summary' => '/cgi-bin/summary.cgi' ],
         [ 'Alert Histogram' => '/cgi-bin/avail.cgi' ],
-        [ 'Nagvis' => '/modules/nagvis' ],
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'NMIS' => '/cgi-nmis/nmiscgi.pl' ],
         [ 'Host Templates' => '/admin/hosttemplate/list' ],
@@ -439,43 +456,43 @@
         [ 'Scheduling Queue' => '/cgi-bin/extinfo.cgi?type=7' ],
         [ 'Audit Log' => '/admin/auditlog' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $adminnoc->followable_links() ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($adminnoc);
+    my @got = cleanup_links($adminnoc);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - public" => sub {
     plan tests => 2;
     $public->get_ok( "/navmenu/menu_standalone" );
-    #<<< skip perltidy
+    #<<< skip perlitdy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'Not logged in' => '/' ],
         [ 'Login' => '/login' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $public->followable_links() ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($public);
+    my @got = cleanup_links($public);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };
 
 subtest "Navigation - viewkeywords" => sub {
@@ -484,8 +501,8 @@
     #<<< skip perltidy
     my @expected = (
         [ '[IMG]' => '/' ],
-        [ '30-Day Pro Trial' => re( '^http://www\.opsview\.com/solutions/pro/trial\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Buy Pro NOW!' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ '30-Day Pro Trial' => 'http://www.opsview.com/solutions/pro/trial?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Buy Pro NOW!' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
         [ 'viewkeywords' => '/user/preference' ],
         [ 'Access profile' => '/user/preference' ],
         [ 'Logout' => '/logout' ],
@@ -512,23 +529,23 @@
         [ 'Nagvis' => '/modules/nagvis' ],
         [ 'MRTG' => '/status/network_traffic' ],
         [ 'Your System' => '/about' ],
-        [ 'Administrator' => re( '^http://docs\.opsview\.com/doku\.php\?hosthash=[A-F0-9]{32}&uuid=TestDB&id=opsview-core$' ) ],
-        [ 'Developer' => re( '^http://docs\.opsview\.com/doku\.php\?id=developer&hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Community Forums' => re( '^http://www\.opsview\.com/technology/forum\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Blog' => re( '^http://www\.opsview\.com/whats-new\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'About Opsview' => re( '^http://www\.opsview\.com/about-us\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Contact Opsview' => re( '^http://www\.opsview\.com/about-us/contact\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Our Services' => re( '^http://www\.opsview\.com/solutions/services\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Book Training' => re( '^http://www\.opsview\.com/solutions/services/training\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Opsview Mobile' => re( '^http://www\.opsview\.com/technology/downloads/extras/opsview-mobile\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
-        [ 'Upgrade to Pro' => re( '^http://www\.opsview\.com/solutions/pro\?hosthash=[A-F0-9]{32}&uuid=TestDB$' ) ],
+        [ 'Administrator' => 'http://docs.opsview.com/doku.php?hosthash=NORMALISED&uuid=TestDB&id=opsview4.X' ],
+        [ 'Developer' => 'http://docs.opsview.com/doku.php?id=developer&hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Community Forums' => 'http://www.opsview.com/technology/forum?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Blog' => 'http://www.opsview.com/whats-new?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'About Opsview' => 'http://www.opsview.com/about-us?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Contact Opsview' => 'http://www.opsview.com/about-us/contact?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Our Services' => 'http://www.opsview.com/solutions/services?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Book Training' => 'http://www.opsview.com/solutions/services/training?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Opsview Mobile' => 'http://www.opsview.com/technology/downloads/extras/opsview-mobile?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
+        [ 'Upgrade to Pro' => 'http://www.opsview.com/solutions/pro?hosthash=NORMALISED&uuid=TestDB' ],
     );
     #>>> skip perltidy
-    cmp_deeply(
-        [ map { [ $_->text => $_->url ] } $viewkeywords->followable_links() ],
-        bag(@expected), "Navigation links as expected",
-    ) or show_current_navigation($viewkeywords);
+    my @got = cleanup_links($viewkeywords);
+    @expected = sort by_links @expected;
+    is_deeply( \@got, \@expected, "Navigation links as expected", )
+      or show_current_navigation( \@got );
 };

_______________________________________________
Opsview-checkins mailing list
[email protected]
http://lists.opsview.org/lists/listinfo/opsview-checkins

Reply via email to