aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/model
diff options
context:
space:
mode:
Diffstat (limited to 't/app/model')
-rw-r--r--t/app/model/alert_type.t8
-rw-r--r--t/app/model/photoset.t30
-rw-r--r--t/app/model/problem.t2
-rw-r--r--t/app/model/questionnaire.t48
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();