aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller/alert.t
blob: 32283134d92b2c8b468f3833334514af8dae3957 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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 class="no-js" 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 class="no-js" 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 class="no-js" 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('To find out what local alerts we have for you');

$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->create_body_ok(2504, 'Birmingham City Council');
$mech->create_body_ok(2226, 'Gloucestershire County Council');
$mech->create_body_ok(2326, 'Cheltenham Borough Council');

$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();