diff options
Diffstat (limited to 't/app/model')
-rw-r--r-- | t/app/model/alert_type.t | 8 | ||||
-rw-r--r-- | t/app/model/photoset.t | 30 | ||||
-rw-r--r-- | t/app/model/problem.t | 2 | ||||
-rw-r--r-- | t/app/model/questionnaire.t | 48 |
4 files changed, 77 insertions, 11 deletions
diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t index c978b5ccf..124e838ee 100644 --- a/t/app/model/alert_type.t +++ b/t/app/model/alert_type.t @@ -22,6 +22,8 @@ my $user3 = ->find_or_create( { email => 'bystander@example.com', name => 'Bystander' } ); ok $user3, "created bystander"; +my $body = $mech->create_body_ok(2504, 'Westminster'); + my $dt = DateTime->new( year => 2011, month => 04, @@ -34,7 +36,7 @@ my $dt = DateTime->new( my $report = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'SW1A 1AA', - bodies_str => '2504', + bodies_str => $body->id, areas => ',105255,11806,11828,2247,2504,', category => 'Other', title => 'Test 2', @@ -165,8 +167,8 @@ $report->update(); my $council_alert = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user2, - parameter => 2504, - parameter2 => 2504, + parameter => $body->id, + parameter2 => $body->id, alert_type => 'council_problems', whensubscribed => $dt->ymd . ' ' . $dt->hms, confirmed => 1, diff --git a/t/app/model/photoset.t b/t/app/model/photoset.t index d171ba88b..29a28d232 100644 --- a/t/app/model/photoset.t +++ b/t/app/model/photoset.t @@ -15,7 +15,10 @@ my $db = FixMyStreet::DB->schema; my $user = $db->resultset('User')->find_or_create({ name => 'Bob', email => 'bob@example.com' }); FixMyStreet::override_config { - UPLOAD_DIR => $UPLOAD_DIR, + PHOTO_STORAGE_BACKEND => 'FileSystem', + PHOTO_STORAGE_OPTIONS => { + UPLOAD_DIR => $UPLOAD_DIR, + }, }, sub { my $image_path = path('t/app/controller/sample.jpg'); @@ -69,4 +72,29 @@ subtest 'Photoset with 3 referenced photo' => sub { }; +subtest 'Correct storage backends are instantiated' => sub { + FixMyStreet::override_config { + PHOTO_STORAGE_BACKEND => 'FileSystem' + }, sub { + my $photoset = FixMyStreet::App::Model::PhotoSet->new; + isa_ok $photoset->storage, 'FixMyStreet::PhotoStorage::FileSystem'; + }; + + FixMyStreet::override_config { + PHOTO_STORAGE_BACKEND => undef + }, sub { + my $photoset = FixMyStreet::App::Model::PhotoSet->new; + isa_ok $photoset->storage, 'FixMyStreet::PhotoStorage::FileSystem'; + }; + + FixMyStreet::override_config { + PHOTO_STORAGE_BACKEND => 'S3' + }, sub { + my $photoset = FixMyStreet::App::Model::PhotoSet->new; + isa_ok $photoset->storage, 'FixMyStreet::PhotoStorage::S3'; + }; + +}; + + done_testing(); diff --git a/t/app/model/problem.t b/t/app/model/problem.t index b9bbe4682..503fa9276 100644 --- a/t/app/model/problem.t +++ b/t/app/model/problem.t @@ -633,7 +633,7 @@ subtest 'check can set multiple emails as a single contact' => sub { subtest 'check can turn on report sent email alerts' => sub { my $send_confirmation_mail_override = Sub::Override->new( "FixMyStreet::Cobrand::Default::report_sent_confirmation_email", - sub { return 1; } + sub { return 'external_id'; } ); $mech->clear_emails_ok; diff --git a/t/app/model/questionnaire.t b/t/app/model/questionnaire.t index 169895f95..aa684a68c 100644 --- a/t/app/model/questionnaire.t +++ b/t/app/model/questionnaire.t @@ -1,3 +1,14 @@ +package FixMyStreet::Cobrand::Tester; + +use parent 'FixMyStreet::Cobrand::Default'; + +sub send_questionnaire { + my ($self, $row) = @_; + return $row->latitude == 1; +} + +package main; + use FixMyStreet; use FixMyStreet::TestMech; @@ -27,7 +38,7 @@ my $problem = FixMyStreet::DB->resultset('Problem')->create( my $mech = FixMyStreet::TestMech->new; -for my $test ( +for my $test ( { state => 'unconfirmed', send_email => 0, @@ -74,22 +85,22 @@ for my $test ( }, { state => 'duplicate', - send_email => 1, + send_email => 0, }, { state => 'unable to fix', - send_email => 1, + send_email => 0, }, { state => 'not responsible', - send_email => 1, + send_email => 0, }, { state => 'closed', - send_email => 1, + send_email => 0, }, ) { - subtest "correct questionnaire behviour for state $test->{state}" => sub { + subtest "correct questionnaire behaviour for state $test->{state}" => sub { $problem->discard_changes; $problem->state( $test->{state} ); $problem->send_questionnaire( 1 ); @@ -108,4 +119,29 @@ for my $test ( } } +for my $test ( + { latitude => 2, emails => 0, }, + { latitude => 1, emails => 1, }, +) { + subtest "test cobrand questionnaire send override, expecting $test->{emails} email" => sub { + FixMyStreet::override_config { + ALLOWED_COBRANDS => 'tester', + }, sub { + $problem->latitude($test->{latitude}); + $problem->send_questionnaire(1); + $problem->state('confirmed'); + $problem->update; + $problem->questionnaires->delete; + + $mech->email_count_is(0); + FixMyStreet::DB->resultset('Questionnaire')->send_questionnaires( { site => 'tester' } ); + $mech->email_count_is($test->{emails}); + $mech->clear_emails_ok(); + + $problem->discard_changes; + is $problem->send_questionnaire, 0; + }; + }; +} + done_testing(); |