aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller/alert.t
diff options
context:
space:
mode:
Diffstat (limited to 't/app/controller/alert.t')
-rw-r--r--t/app/controller/alert.t66
1 files changed, 66 insertions, 0 deletions
diff --git a/t/app/controller/alert.t b/t/app/controller/alert.t
new file mode 100644
index 000000000..b8e38ec92
--- /dev/null
+++ b/t/app/controller/alert.t
@@ -0,0 +1,66 @@
+use strict;
+use warnings;
+use Test::More;
+
+
+use Catalyst::Test 'FixMyStreet::App';
+use Test::WWW::Mechanize::Catalyst 'FixMyStreet::App';
+
+ok( my $mech = Test::WWW::Mechanize::Catalyst->new, 'Created mech object' );
+
+# check that we can get the page
+$mech->get_ok('/alert');
+$mech->title_like(qr/^Local RSS feeds and email alerts/);
+$mech->content_contains('Local RSS feeds and email alerts');
+$mech->content_contains('html lang="en-gb"');
+
+# check that we can get list page
+$mech->get_ok('/alert/list');
+$mech->title_like(qr/^Local RSS feeds and email alerts/);
+$mech->content_contains('Local RSS feeds and email alerts');
+$mech->content_contains('html lang="en-gb"');
+
+$mech->get_ok('/alert/list?pc=EH99 1SP');
+$mech->title_like(qr/^Local RSS feeds and email alerts/);
+$mech->content_contains('Here are the types of local problem alerts for ‘EH99 1SP’');
+$mech->content_contains('html lang="en-gb"');
+$mech->content_contains('Problems within 8.5km');
+$mech->content_contains('rss/pc/EH991SP/2');
+$mech->content_contains('rss/pc/EH991SP/5');
+$mech->content_contains('rss/pc/EH991SP/10');
+$mech->content_contains('rss/pc/EH991SP/20');
+$mech->content_contains('Problems within City of Edinburgh');
+$mech->content_contains('Problems within City Centre ward');
+$mech->content_contains('/rss/reports/City+of+Edinburgh');
+$mech->content_contains('/rss/reports/City+of+Edinburgh/City+Centre');
+$mech->content_contains('council:2651:City_of_Edinburgh');
+$mech->content_contains('ward:2651:20728:City_of_Edinburgh:City_Centre');
+
+$mech->get_ok('/alert/list?pc=High Street');
+$mech->content_contains('We found more than one match for that location');
+
+$mech->get_ok('/alert/list?pc=');
+$mech->content_contains('hat location does not appear to be covered by a council');
+
+$mech->get_ok('/alert/list?pc=GL502PR');
+$mech->content_contains('Problems within the boundary of');
+
+$mech->get_ok('/alert/subscribe?rss=1&type=local&pc=ky16+8yg&rss=Give+me+an+RSS+feed&rznvy=' );
+$mech->content_contains('Please select the feed you want');
+
+$mech->get_ok('/alert/subscribe?rss=1&feed=invalid:1000:A_Locationtype=local&pc=ky16+8yg&rss=Give+me+an+RSS+feed&rznvy=');
+$mech->content_contains('Illegal feed selection');
+
+$mech->get_ok('/alert/subscribe?rss=1&feed=area:1000:Birmingham');
+is $mech->uri->path, '/rss/reports/Birmingham';
+
+$mech->get_ok('/alert/subscribe?rss=1&feed=area:1000:1001:Cheltenham:Lansdown');
+is $mech->uri->path, '/rss/area/Cheltenham/Lansdown';
+
+$mech->get_ok('/alert/subscribe?rss=1&feed=council:1000:Gloucestershire');
+is $mech->uri->path, '/rss/reports/Gloucestershire';
+
+$mech->get_ok('/alert/subscribe?rss=1&feed=ward:1000:1001:Cheltenham:Lansdown');
+is $mech->uri->path, '/rss/reports/Cheltenham/Lansdown';
+
+done_testing();