File: compilation_errors.t

package info (click to toggle)
request-tracker5 5.0.7%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 80,216 kB
  • sloc: javascript: 191,898; perl: 87,146; sh: 1,412; makefile: 487; python: 37; php: 15
file content (76 lines) | stat: -rw-r--r-- 2,266 bytes parent folder | download | duplicates (2)
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
use strict;
use warnings;
use Test::More;
use File::Find;
use HTTP::Status qw();

BEGIN {
    $ENV{RT_TEST_DEVEL} ||= 1;
    sub wanted {
        -f && /\.html$/ && $_ !~ /Logout.html$/ && $File::Find::dir !~ /RichText/;
    }
    my $tests = 7;
    find( sub { wanted() and $tests += 4 }, 'share/html/', 'share/html/SelfService/' );
    plan tests => $tests + 1; # plus one for warnings check
}


use HTTP::Request::Common;
use HTTP::Cookies;
use LWP;

my $cookie_jar = HTTP::Cookies->new;

use RT::Test;
my ($baseurl, $agent) = RT::Test->started_ok;

# give the agent a place to stash the cookies
$agent->cookie_jar($cookie_jar);

# get the top page
my $url = $agent->rt_base_url;
$agent->get($url);

is($agent->status, HTTP::Status::HTTP_OK, "Loaded a page");

# follow the link marked "Login"
$agent->login(root => 'password');
is($agent->status, HTTP::Status::HTTP_OK, "Fetched the page ok");
$agent->content_contains('Logout', "Found a logout link");


find ( { wanted => sub { wanted() and test_get($agent, $File::Find::name) }, no_chdir => 1 } , 'share/html/');

my $customer = RT::Test->load_or_create_user(
    Name         => 'user1',
    Password     => 'password',
    EmailAddress => 'user1@example.com',
    Privileged   => 0,
);
# Classic permission settings
RT::Test->add_rights( { Principal => 'Everyone', Right => [qw(CreateTicket SeeQueue)] } );

$agent->login( user1 => 'password', logout => 1 );
find( { wanted => sub { wanted() and test_get( $agent, $File::Find::name ) }, no_chdir => 1 }, 'share/html/SelfService' );

# We expect to spew a lot of warnings; toss them away
$agent->get_warnings;

sub test_get {
    my $agent = shift;
        my $file = shift;

        $file =~ s#^share/html/##;
        diag( "testing $url/$file" );

        $agent->get("$url/$file");
        isnt($agent->status, HTTP::Status::HTTP_INTERNAL_SERVER_ERROR, "Loaded $file");
        $agent->content_lacks('Not logged in', "Still logged in for  $file");
        $agent->content_lacks('raw error', "Didn't get a Mason compilation error on $file") or do {
            if (my ($error) = $agent->content =~ /<pre>(.*?line.*?)$/s) {
                diag "$file: $error";
            }
        };
        $agent->content_contains('</html>', "Found HTML end tag");
}