From 3c9c0531e5332c5375f23e9b37fdeb8e5212f019 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Mon, 1 Aug 2011 14:32:35 +0100 Subject: Store confirmed time if done via admin interface, fixes #141. --- t/app/controller/admin.t | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 7f8590747..9f698c629 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -602,7 +602,7 @@ for my $test ( }, changes => { text => 'this is a twice changed update', - state => 'hidden', + state => 'confirmed', }, log_count => 7, log_entries => [qw/edit state_change state_change edit edit edit edit/], @@ -629,6 +629,9 @@ for my $test ( $update->discard_changes; is $update->$_, $test->{changes}->{$_} for grep { $_ ne 'email' } keys %{ $test->{changes} }; + if ( $test->{changes}{state} && $test->{changes}{state} eq 'confirmed' ) { + isnt $update->confirmed, undef; + } if ( $test->{user} ) { is $update->user->id, $test->{user}->id, 'update user'; -- cgit v1.2.3 From c63f13886f245a3778c5ae91c92fbe72e79379a3 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 5 Aug 2011 16:39:22 +0100 Subject: Probably wise not to have a test dependent on another server not reorganising its db internally :) --- t/app/controller/admin.t | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 9f698c629..4e2ec82fe 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -136,7 +136,7 @@ subtest 'check summary counts' => sub { my $host = FixMyStreet->config('BASE_URL'); $mech->get_ok('/admin/council_contacts/2650'); $mech->content_contains('Aberdeen City Council'); -$mech->content_contains('AB15 8RN'); +$mech->content_like(qr{AB\d\d}); $mech->content_contains("$host/around"); subtest 'check contact creation' => sub { -- cgit v1.2.3 From 3d146713442dd9544ad89c35fdc8dcb1e8698ad6 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Tue, 9 Aug 2011 14:12:07 +0100 Subject: Lowercase email addresses sent via /import. Fixes #146. --- t/app/controller/report_import.t | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 't/app/controller') diff --git a/t/app/controller/report_import.t b/t/app/controller/report_import.t index 61ee28b88..385445565 100644 --- a/t/app/controller/report_import.t +++ b/t/app/controller/report_import.t @@ -77,7 +77,7 @@ subtest "Submit a correct entry" => sub { with_fields => { service => 'test-script', name => 'Test User', - email => 'test@example.com', + email => 'Test@example.com', subject => 'Test report', detail => 'This is a test report', photo => $sample_file, -- cgit v1.2.3 From 9cecc15f451e7fd7e5cdab66fa747f86f8b6bee1 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Tue, 9 Aug 2011 16:43:18 +0100 Subject: Fix broken lack of paragraphing, fixes #140. --- t/app/controller/report_new.t | 6 +++--- t/app/controller/report_updates.t | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 't/app/controller') diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t index f06c23501..fa188210a 100644 --- a/t/app/controller/report_new.t +++ b/t/app/controller/report_new.t @@ -151,8 +151,8 @@ foreach my $test ( msg => 'title and details tidied up', pc => 'SW1A 1AA', fields => { - title => 'DOG SHIT ON WALLS', - detail => 'on this portakabin - more of a portaloo HEH!!', + title => "DOG SHIT\r\nON WALLS", + detail => "on this portakabin -\r\n\r\nmore of a portaloo HEH!!", photo => '', name => 'Bob Jones', may_show_name => '1', @@ -166,7 +166,7 @@ foreach my $test ( changes => { title => 'Dog poo on walls', detail => - 'On this [portable cabin] - more of a [portable loo] HEH!!', + "On this [portable cabin] -\n\nMore of a [portable loo] HEH!!", }, errors => [ 'Please enter your email', ], }, diff --git a/t/app/controller/report_updates.t b/t/app/controller/report_updates.t index 3076a4564..856e7d763 100644 --- a/t/app/controller/report_updates.t +++ b/t/app/controller/report_updates.t @@ -324,13 +324,13 @@ for my $test ( form_values => { submit_update => 1, rznvy => 'unregistered@example.com', - update => 'update from an unregistered user', + update => "update from an\r\n\r\nunregistered user", add_alert => 1, name => 'Unreg User', may_show_name => undef, }, changes => { - update => 'Update from an unregistered user', + update => "Update from an\n\nUnregistered user", }, } ) { -- cgit v1.2.3 From c7efa9f49a3aa1744fd12d00ba409734ec217b1a Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Fri, 10 Jun 2011 13:27:17 +0100 Subject: add a ban email address button --- t/app/controller/admin.t | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 4e2ec82fe..0acaffc8d 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -488,6 +488,27 @@ subtest 'change email to new user' => sub { is $report->user_id, $user3->id, 'user changed to new user'; }; +subtest 'adding email to abuse list from report page' => sub { + my $email = $report->user->email; + + my $abuse = FixMyStreet::App->model('DB::Abuse')->find( { email => $email } ); + $abuse->delete if $abuse; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('Ban email address'); + + $mech->click_ok('banuser'); + + $mech->content_contains('Email added to abuse list'); + $mech->content_contains('(Email in abuse table)'); + + $abuse = FixMyStreet::App->model('DB::Abuse')->find( { email => $email } ); + ok $abuse, 'entry created in abuse table'; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('(Email in abuse table)'); +}; + $log_entries->delete; my $update = FixMyStreet::App->model('DB::Comment')->create( @@ -668,6 +689,27 @@ subtest 'editing update email creates new user if required' => sub { is $update->user->id, $user->id, 'update set to new user'; }; +subtest 'adding email to abuse list from update page' => sub { + my $email = $update->user->email; + + my $abuse = FixMyStreet::App->model('DB::Abuse')->find( { email => $email } ); + $abuse->delete if $abuse; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('Ban email address'); + + $mech->click_ok('banuser'); + + $mech->content_contains('Email added to abuse list'); + $mech->content_contains('(Email in abuse table)'); + + $abuse = FixMyStreet::App->model('DB::Abuse')->find( { email => $email } ); + ok $abuse, 'entry created in abuse table'; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('(Email in abuse table)'); +}; + subtest 'hiding comment marked as fixed reopens report' => sub { $update->mark_fixed( 1 ); $update->update; -- cgit v1.2.3 From 68461d28992628ff394e05d56ab3ab962d048db0 Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Fri, 10 Jun 2011 16:10:14 +0100 Subject: abuse table search --- t/app/controller/admin.t | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 0acaffc8d..acbe17c1b 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -766,6 +766,12 @@ subtest 'report search' => sub { $mech->content_like( qr{]*hidden[^>]*> \s* \s* $r_id \s* }xs ); }; +subtest 'search abuse' => sub { + $mech->get_ok( '/admin/search_abuse?search=example' ); + + $mech->content_contains('test4@example.com'); +}; + $mech->delete_user( $user ); $mech->delete_user( $user2 ); $mech->delete_user( $user3 ); -- cgit v1.2.3 From bf2583d2221e75f7cecdd94ca573b0ecc4d387de Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Fri, 10 Jun 2011 17:27:18 +0100 Subject: list flagged items page for admin --- t/app/controller/admin.t | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index acbe17c1b..2740a1dbb 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -772,6 +772,18 @@ subtest 'search abuse' => sub { $mech->content_contains('test4@example.com'); }; +subtest 'show flagged entries' => sub { + $report->flagged( 1 ); + $report->update; + + $user->flagged( 1 ); + $user->update; + + $mech->get_ok('/admin/list_flagged'); + $mech->content_contains( $report->title ); + $mech->content_contains( $user->email ); +}; + $mech->delete_user( $user ); $mech->delete_user( $user2 ); $mech->delete_user( $user3 ); -- cgit v1.2.3 From 825973c0c1d3b3bb103955fb8aea8bfe4c34d248 Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Mon, 13 Jun 2011 17:46:31 +0100 Subject: add flagged checkbox for report editing --- t/app/controller/admin.t | 59 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 14 deletions(-) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 2740a1dbb..0c9f03fa6 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -233,6 +233,7 @@ foreach my $test ( name => 'Test User', email => $user->email, anonymous => 0, + flagged => undef, }, changes => { title => 'Edited Report', @@ -250,6 +251,7 @@ foreach my $test ( name => 'Test User', email => $user->email, anonymous => 0, + flagged => undef, }, changes => { detail => 'Edited Detail', @@ -267,6 +269,7 @@ foreach my $test ( name => 'Test User', email => $user->email, anonymous => 0, + flagged => undef, }, changes => { name => 'Edited User', @@ -277,7 +280,7 @@ foreach my $test ( user => $user, }, { - description => 'edit report user email', + description => 'edit report set flagged true', fields => { title => 'Edited Report', detail => 'Edited Detail', @@ -285,13 +288,33 @@ foreach my $test ( name => 'Edited User', email => $user->email, anonymous => 0, + flagged => undef, }, changes => { - email => $user2->email, + flagged => 'on', }, log_count => 4, log_entries => [ qw/edit edit edit edit/ ], resend => 0, + user => $user, + }, + { + description => 'edit report user email', + fields => { + title => 'Edited Report', + detail => 'Edited Detail', + state => 'confirmed', + name => 'Edited User', + email => $user->email, + anonymous => 0, + flagged => 'on', + }, + changes => { + email => $user2->email, + }, + log_count => 5, + log_entries => [ qw/edit edit edit edit edit/ ], + resend => 0, user => $user2, }, { @@ -303,12 +326,13 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 0, + flagged => 'on', }, changes => { state => 'unconfirmed' }, - log_count => 5, - log_entries => [ qw/state_change edit edit edit edit/ ], + log_count => 6, + log_entries => [ qw/state_change edit edit edit edit edit/ ], resend => 0, }, { @@ -320,12 +344,13 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 0, + flagged => 'on', }, changes => { state => 'confirmed' }, - log_count => 6, - log_entries => [ qw/state_change state_change edit edit edit edit/ ], + log_count => 7, + log_entries => [ qw/state_change state_change edit edit edit edit edit/ ], resend => 0, }, { @@ -337,12 +362,13 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 0, + flagged => 'on', }, changes => { state => 'fixed' }, - log_count => 7, - log_entries => [ qw/state_change state_change state_change edit edit edit edit/ ], + log_count => 8, + log_entries => [ qw/state_change state_change state_change edit edit edit edit edit/ ], resend => 0, }, { @@ -354,12 +380,13 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 0, + flagged => 'on', }, changes => { state => 'hidden' }, - log_count => 8, - log_entries => [ qw/state_change state_change state_change state_change edit edit edit edit/ ], + log_count => 9, + log_entries => [ qw/state_change state_change state_change state_change edit edit edit edit edit/ ], resend => 0, }, { @@ -371,13 +398,14 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 0, + flagged => 'on', }, changes => { state => 'confirmed', anonymous => 1, }, - log_count => 10, - log_entries => [ qw/edit state_change state_change state_change state_change state_change edit edit edit edit/ ], + log_count => 11, + log_entries => [ qw/edit state_change state_change state_change state_change state_change edit edit edit edit edit/ ], resend => 0, }, { @@ -389,11 +417,12 @@ foreach my $test ( name => 'Edited User', email => $user2->email, anonymous => 1, + flagged => 'on', }, changes => { }, - log_count => 11, - log_entries => [ qw/resend edit state_change state_change state_change state_change state_change edit edit edit edit/ ], + log_count => 12, + log_entries => [ qw/resend edit state_change state_change state_change state_change state_change edit edit edit edit edit/ ], resend => 1, }, ) { @@ -426,6 +455,7 @@ foreach my $test ( $mech->content_lacks( 'type="submit" name="resend"', 'no resend button' ); } + $test->{changes}->{flagged} = 1 if $test->{changes}->{flagged}; is $report->$_, $test->{changes}->{$_}, "$_ updated" for grep { $_ ne 'email' } keys %{ $test->{changes} }; if ( $test->{user} ) { @@ -449,6 +479,7 @@ subtest 'change email to new user' => sub { name => $report->name, email => $report->user->email, anonymous => 1, + flagged => 'on', }; is_deeply( $mech->visible_form_values(), $fields, 'initial form values' ); -- cgit v1.2.3 From 6338f074049779543dcc61e87db0c3afe3a1d719 Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Thu, 30 Jun 2011 22:19:07 +0100 Subject: auto flag reported problems --- t/app/controller/contact.t | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 't/app/controller') diff --git a/t/app/controller/contact.t b/t/app/controller/contact.t index bbb3a0f83..a69a56ac4 100644 --- a/t/app/controller/contact.t +++ b/t/app/controller/contact.t @@ -248,6 +248,9 @@ for my $test ( ) { subtest 'check email sent correctly' => sub { + $problem_main->discard_changes; + ok !$problem_main->flagged, 'problem not flagged'; + $mech->clear_emails_ok; if ($test->{fields}{id}) { $mech->get_ok('/contact?id=' . $test->{fields}{id}); @@ -267,6 +270,12 @@ for my $test ( my $problem_id = $test->{fields}{id}; like $email->body, qr/Complaint about report $problem_id/, 'reporting a report' if $test->{fields}{id}; + + if ( $problem_id ) { + $problem_main->discard_changes; + ok $problem_main->flagged, 'problem flagged'; + } + }; } -- cgit v1.2.3 From 5633ecc489cef3cdc0e3e28a41973226a9d62c2d Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Thu, 30 Jun 2011 22:19:47 +0100 Subject: extra test for auto flagging --- t/app/controller/contact.t | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 't/app/controller') diff --git a/t/app/controller/contact.t b/t/app/controller/contact.t index a69a56ac4..86b845eb3 100644 --- a/t/app/controller/contact.t +++ b/t/app/controller/contact.t @@ -271,9 +271,11 @@ for my $test ( like $email->body, qr/Complaint about report $problem_id/, 'reporting a report' if $test->{fields}{id}; + $problem_main->discard_changes; if ( $problem_id ) { - $problem_main->discard_changes; ok $problem_main->flagged, 'problem flagged'; + } else { + ok !$problem_main->flagged, 'problem not flagged'; } }; -- cgit v1.2.3 From 7145157c8e6d907b8f2aa71b483b2c1f88fac1ce Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Thu, 30 Jun 2011 23:00:38 +0100 Subject: allow flagging of user from report and update pages --- t/app/controller/admin.t | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 0c9f03fa6..2ccb2ea73 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -540,6 +540,25 @@ subtest 'adding email to abuse list from report page' => sub { $mech->content_contains('(Email in abuse table)'); }; +subtest 'flagging user from report page' => sub { + $report->user->flagged(0); + $report->user->update; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('Flag user'); + + $mech->click_ok('flaguser'); + + $mech->content_contains('User flagged'); + $mech->content_contains('(Flagged)'); + + $report->discard_changes; + ok $report->user->flagged, 'user flagged'; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('(Flagged)'); +}; + $log_entries->delete; my $update = FixMyStreet::App->model('DB::Comment')->create( @@ -741,6 +760,26 @@ subtest 'adding email to abuse list from update page' => sub { $mech->content_contains('(Email in abuse table)'); }; +subtest 'flagging user from update page' => sub { + $update->user->flagged(0); + $update->user->update; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('Flag user'); + + $mech->click_ok('flaguser'); + + $mech->content_contains('User flagged'); + $mech->content_contains('(Flagged)'); + + $update->discard_changes; + ok $update->user->flagged, 'user flagged'; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('(Flagged)'); +}; + + subtest 'hiding comment marked as fixed reopens report' => sub { $update->mark_fixed( 1 ); $update->update; -- cgit v1.2.3 From e767b9fc4beb8fa3cb33e40a2dfe779e9ccef1d4 Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Wed, 20 Jul 2011 11:29:58 +0100 Subject: add remove user flag button to report and update edit pages --- t/app/controller/admin.t | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) (limited to 't/app/controller') diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 2ccb2ea73..8d55bbc18 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -550,13 +550,32 @@ subtest 'flagging user from report page' => sub { $mech->click_ok('flaguser'); $mech->content_contains('User flagged'); - $mech->content_contains('(Flagged)'); + $mech->content_contains('Remove flag'); $report->discard_changes; ok $report->user->flagged, 'user flagged'; $mech->get_ok( '/admin/report_edit/' . $report->id ); - $mech->content_contains('(Flagged)'); + $mech->content_contains('Remove flag'); +}; + +subtest 'unflagging user from report page' => sub { + $report->user->flagged(1); + $report->user->update; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('Remove flag'); + + $mech->click_ok('removeuserflag'); + + $mech->content_contains('User flag removed'); + $mech->content_contains('Flag user'); + + $report->discard_changes; + ok !$report->user->flagged, 'user not flagged'; + + $mech->get_ok( '/admin/report_edit/' . $report->id ); + $mech->content_contains('Flag user'); }; $log_entries->delete; @@ -770,15 +789,33 @@ subtest 'flagging user from update page' => sub { $mech->click_ok('flaguser'); $mech->content_contains('User flagged'); - $mech->content_contains('(Flagged)'); + $mech->content_contains('Remove flag'); $update->discard_changes; ok $update->user->flagged, 'user flagged'; $mech->get_ok( '/admin/update_edit/' . $update->id ); - $mech->content_contains('(Flagged)'); + $mech->content_contains('Remove flag'); }; +subtest 'unflagging user from update page' => sub { + $update->user->flagged(1); + $update->user->update; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('Remove flag'); + + $mech->click_ok('removeuserflag'); + + $mech->content_contains('User flag removed'); + $mech->content_contains('Flag user'); + + $update->discard_changes; + ok !$update->user->flagged, 'user not flagged'; + + $mech->get_ok( '/admin/update_edit/' . $update->id ); + $mech->content_contains('Flag user'); +}; subtest 'hiding comment marked as fixed reopens report' => sub { $update->mark_fixed( 1 ); -- cgit v1.2.3