diff options
Diffstat (limited to 't/app/controller/alert.t')
-rw-r--r-- | t/app/controller/alert.t | 66 |
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(); |