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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
use strict;
use warnings;
use Test::More;
# structure of these tests borrowed from '/t/aggregate/unit_core_uri_for.t'
use strict;
use warnings;
use URI;
use_ok('FixMyStreet::App');
my $fms_c = FixMyStreet::App->new(
{
request => Catalyst::Request->new(
{
base => URI->new('http://www.fixmystreet.com/'),
uri => URI->new('http://www.fixmystreet.com/test_namespace')
}
),
namespace => 'test_namespace',
}
);
my $fgm_c = FixMyStreet::App->new(
{
request => Catalyst::Request->new(
{
base => URI->new('http://www.fiksgatami.no/'),
uri => URI->new('http://www.fiksgatami.no/test_namespace')
}
),
namespace => 'test_namespace',
}
);
is(
$fms_c->uri_for('/bar/baz') . "",
'http://www.fixmystreet.com/bar/baz',
'URI for absolute path'
);
is(
$fms_c->uri_for('') . "",
'http://www.fixmystreet.com/test_namespace',
'URI for namespace'
);
is(
$fms_c->uri_for( '/bar/baz', 'boing', { foo => 'bar', } ) . "",
'http://www.fixmystreet.com/bar/baz/boing?foo=bar',
'URI with query'
);
# fiksgatami
is(
$fgm_c->uri_for( '/foo', { lat => 1.23, } ) . "",
'http://www.fiksgatami.no/foo?lat=1.23&zoom=2',
'FiksGataMi url with lat not zoom'
);
## Should really test the cities but we'd need to fake up too much of the
# request. Following code starts to do this but is not complete. Instead better
# to test that the cities produces the correct urls by looking at the html
# produced.
#
# # cities
# my $cities_c = FixMyStreet::App->new(
# {
# request => Catalyst::Request->new(
# {
# base => URI->new('http://cities.fixmystreet.com/'),
# uri => URI->new(
# 'http://cities.fixmystreet.com/test_namespace?city=cardiff'
# ),
# params => { city => 'cardiff', },
# }
# ),
# namespace => 'test_namespace',
# }
# )->setup_request;
# is(
# $cities_c->uri_for( '/foo', { bar => 'baz' } ) . "",
# '{microapp-href:http://cities.fixmystreet.com/foo?bar=baz&city=cardiff}',
# 'Cities url'
# );
done_testing();
|