diff options
Diffstat (limited to 't/app/controller/admin.t')
-rw-r--r-- | t/app/controller/admin.t | 167 |
1 files changed, 122 insertions, 45 deletions
diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index 531fa7726..df4a72c4b 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -15,6 +15,8 @@ my $superuser = $mech->create_user_ok('superuser@example.com', name => 'Super Us my $oxfordshire = $mech->create_body_ok(2237, 'Oxfordshire County Council', id => 2237); my $oxfordshireuser = $mech->create_user_ok('counciluser@example.com', name => 'Council User', from_body => $oxfordshire); +my $bromley = $mech->create_body_ok(2482, 'Bromley Council', id => 2482); + my $user3 = $mech->create_user_ok('test3@example.com', name => 'Test User 2'); if ( $user3 ) { @@ -1153,6 +1155,19 @@ for my $test ( phone => '', flagged => undef, is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { name => 'Changed User', @@ -1169,6 +1184,19 @@ for my $test ( phone => '', flagged => undef, is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { email => 'changed@example.com', @@ -1185,6 +1213,19 @@ for my $test ( phone => '', flagged => undef, is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { body => $southend->id, @@ -1201,6 +1242,19 @@ for my $test ( phone => '', flagged => undef, is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { flagged => 'on', @@ -1217,6 +1271,19 @@ for my $test ( phone => '', flagged => 'on', is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { flagged => undef, @@ -1233,10 +1300,38 @@ for my $test ( phone => '', flagged => undef, is_superuser => undef, + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, }, changes => { is_superuser => 'on', }, + removed => [ + "permissions[moderate]", + "permissions[planned_reports]", + "permissions[report_edit]", + "permissions[report_edit_category]", + "permissions[report_edit_priority]", + "permissions[report_inspect]", + "permissions[report_instruct]", + "permissions[contribute_as_another_user]", + "permissions[contribute_as_body]", + "permissions[user_edit]", + "permissions[user_manage_permissions]", + "permissions[user_assign_body]", + "permissions[user_assign_areas]", + ], log_count => 5, log_entries => [qw/edit edit edit edit edit/], }, @@ -1253,6 +1348,21 @@ for my $test ( changes => { is_superuser => undef, }, + added => { + "permissions[moderate]" => undef, + "permissions[planned_reports]" => undef, + "permissions[report_edit]" => undef, + "permissions[report_edit_category]" => undef, + "permissions[report_edit_priority]" => undef, + "permissions[report_inspect]" => undef, + "permissions[report_instruct]" => undef, + "permissions[contribute_as_another_user]" => undef, + "permissions[contribute_as_body]" => undef, + "permissions[user_edit]" => undef, + "permissions[user_manage_permissions]" => undef, + "permissions[user_assign_body]" => undef, + "permissions[user_assign_areas]" => undef, + }, log_count => 5, log_entries => [qw/edit edit edit edit edit/], }, @@ -1270,6 +1380,17 @@ for my $test ( $mech->submit_form_ok( { with_fields => $expected } ); + # Some actions cause visible fields to be added/removed + foreach my $x (@{ $test->{removed} }) { + delete $expected->{$x}; + } + if ( $test->{added} ) { + $expected = { + %$expected, + %{ $test->{added} } + }; + } + $visible = $mech->visible_form_values; is_deeply $visible, $expected, 'user updated'; @@ -1355,52 +1476,8 @@ subtest "Users with from_body can't access fixmystreet.com admin" => sub { }; }; -$report->bodies_str(2237); -$report->cobrand('oxfordshire'); -$report->update; - -$mech->log_in_ok( $oxfordshireuser->email ); - -subtest "Users can't edit report without report_edit permission" => sub { - FixMyStreet::override_config { - ALLOWED_COBRANDS => [ 'oxfordshire' ], - }, sub { - $mech->get("/admin/report_edit/$report_id"); - ok !$mech->res->is_success(), "want a bad response"; - is $mech->res->code, 404, "got 404, can't edit report without report_edit permission"; - }; -}; - -subtest "Users can edit report with report_edit permission" => sub { - FixMyStreet::override_config { - ALLOWED_COBRANDS => [ 'oxfordshire' ], - }, sub { - $oxfordshireuser->user_body_permissions->create({ - body => $oxfordshire, - permission_type => 'report_edit', - }); - - $mech->get_ok("/admin/report_edit/$report_id"); - $mech->content_contains( $report->title ); - }; -}; - -subtest "Users can't edit another council's reports with their own council's report_edit permission" => sub { - FixMyStreet::override_config { - ALLOWED_COBRANDS => [ 'oxfordshire' ], - }, sub { - $report->bodies_str(2482); - $report->cobrand('bromley'); - $report->update; - - $mech->get("/admin/report_edit/$report_id"); - ok !$mech->res->is_success(), "want a bad response"; - is $mech->res->code, 404, "got 404, can't edit report with incorrect body in report_edit permission"; - }; -}; - - $mech->log_out_ok; +$user2->user_body_permissions->delete_all; $oxfordshireuser->user_body_permissions->delete_all; |