root/honeyclient/tags/exp/PRE-kindlund-simpler_agent/t/honeyclient_agent_driver_browser_ie.t

Revision 751, 6.0 kB (checked in by kindlund, 1 year ago)

sva: merging branch using tags svn+ssh://kindlund@www.honeyclient.org/home/svn/honeyclient/honeyclient/tags/exp/PRE-kindlund-firefox and svn+ssh://kindlund@www.honeyclient.org/home/svn/honeyclient/honeyclient/branches/exp/kindlund-firefox

Line 
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Test::More 'no_plan';
5 $| = 1;
6
7
8
9 # =begin testing
10 {
11 # Make sure Log::Log4perl loads
12 BEGIN { use_ok('Log::Log4perl', qw(:nowarn))
13         or diag("Can't load Log::Log4perl package. Check to make sure the package library is correctly listed within the path.");
14        
15         # Suppress all logging messages, since we need clean output for unit testing.
16         Log::Log4perl->init({
17             "log4perl.rootLogger"                               => "DEBUG, Buffer",
18             "log4perl.appender.Buffer"                          => "Log::Log4perl::Appender::TestBuffer",
19             "log4perl.appender.Buffer.min_level"                => "fatal",
20             "log4perl.appender.Buffer.layout"                   => "Log::Log4perl::Layout::PatternLayout",
21             "log4perl.appender.Buffer.layout.ConversionPattern" => "%d{yyyy-MM-dd HH:mm:ss} %5p [%M] (%F:%L) - %m%n",
22         });
23 }
24 require_ok('Log::Log4perl');
25 use Log::Log4perl qw(:easy);
26
27 # Make sure HoneyClient::Util::Config loads.
28 BEGIN { use_ok('HoneyClient::Util::Config', qw(getVar))
29         or diag("Can't load HoneyClient::Util::Config package.  Check to make sure the package library is correctly listed within the path.");
30
31         # Suppress all logging messages, since we need clean output for unit testing.
32         Log::Log4perl->init({
33             "log4perl.rootLogger"                               => "DEBUG, Buffer",
34             "log4perl.appender.Buffer"                          => "Log::Log4perl::Appender::TestBuffer",
35             "log4perl.appender.Buffer.min_level"                => "fatal",
36             "log4perl.appender.Buffer.layout"                   => "Log::Log4perl::Layout::PatternLayout",
37             "log4perl.appender.Buffer.layout.ConversionPattern" => "%d{yyyy-MM-dd HH:mm:ss} %5p [%M] (%F:%L) - %m%n",
38         });
39        
40 }
41 require_ok('HoneyClient::Util::Config');
42 can_ok('HoneyClient::Util::Config', 'getVar');
43 use HoneyClient::Util::Config qw(getVar);
44
45 # Make sure the module loads properly, with the exportable
46 # functions shared.
47 BEGIN { use_ok('HoneyClient::Agent::Driver::Browser::IE') or diag("Can't load HoneyClient::Agent::Driver::Browser::IE package.  Check to make sure the package library is correctly listed within the path."); }
48 require_ok('HoneyClient::Agent::Driver::Browser::IE');
49 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'new');
50 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'drive');
51 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'isFinished');
52 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'next');
53 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'status');
54 can_ok('HoneyClient::Agent::Driver::Browser::IE', 'getNextLink');
55 use HoneyClient::Agent::Driver::Browser::IE;
56
57 # Suppress all logging messages, since we need clean output for unit testing.
58 Log::Log4perl->init({
59     "log4perl.rootLogger"                               => "DEBUG, Buffer",
60     "log4perl.appender.Buffer"                          => "Log::Log4perl::Appender::TestBuffer",
61     "log4perl.appender.Buffer.min_level"                => "fatal",
62     "log4perl.appender.Buffer.layout"                   => "Log::Log4perl::Layout::PatternLayout",
63     "log4perl.appender.Buffer.layout.ConversionPattern" => "%d{yyyy-MM-dd HH:mm:ss} %5p [%M] (%F:%L) - %m%n",
64 });
65
66 # Make sure Win32::Job loads.
67 BEGIN { use_ok('Win32::Job') or diag("Can't load Win32::Job package.  Check to make sure the package library is correctly listed within the path."); }
68 require_ok('Win32::Job');
69 use Win32::Job;
70
71 # Make sure ExtUtils::MakeMaker loads.
72 BEGIN { use_ok('ExtUtils::MakeMaker', qw(prompt)) or diag("Can't load ExtUtils::MakeMaker package.  Check to make sure the package library is correctly listed within the path."); }
73 require_ok('ExtUtils::MakeMaker');
74 can_ok('ExtUtils::MakeMaker', 'prompt');
75 use ExtUtils::MakeMaker qw(prompt);
76 }
77
78
79
80 # =begin testing
81 {
82 # Generate a notice, to clarify our assumptions.
83 diag("");
84 diag("About to run basic IE-specific browser tests.");
85 diag("Note: These tests *require* network connectivity and");
86 diag("*expect* IE to be installed at the following location.");
87 diag("");
88
89 my $processExec = getVar(name      => "process_exec",
90                          namespace => "HoneyClient::Agent::Driver::Browser::IE");
91 my $processName = getVar(name      => "process_name",
92                          namespace => "HoneyClient::Agent::Driver::Browser::IE");
93
94 diag("Process Name:\t\t'" . $processName . "'");
95 diag("Process Location:\t'" . $processExec . "'");
96 diag("");
97 diag("If IE is installed in a different location or has a different executable name,");
98 diag("then please answer *NO* to the next question and update your etc/honeyclient.xml");
99 diag("file, changing the 'process_name' and 'process_exec' elements in the");
100 diag("<HoneyClient/><Agent/><Driver/><Browser/><IE/> section.");
101 diag("");
102 diag("Then, once updated, re-run these tests.");
103 diag("");
104
105 my $question;
106 $question = prompt("# Do you want to run these tests?", "yes");
107 if ($question !~ /^y.*/i) {
108     exit;
109 }
110
111 my $ie = HoneyClient::Agent::Driver::Browser::IE->new(test => 1);
112 is($ie->{test}, 1, "new(test => 1)") or diag("The new() call failed.");
113 isa_ok($ie, 'HoneyClient::Agent::Driver::Browser::IE', "new(test => 1)") or diag("The new() call failed.");
114
115 diag("");
116 diag("About to drive IE to a specific website for *exactly* " . $ie->{timeout} . " seconds.");
117 diag("Note: Please do *NOT* close the browser manually; the test code should close it automatically.");
118 diag("");
119
120 $question = prompt("# Which website should IE browse to?", "http://www.google.com");
121 $ie->drive(url => $question);
122
123 diag("");
124 $question = prompt("# Did IE properly render the page and automatically exit?", "yes");
125 if ($question !~ /^y.*/i) {
126     diag("");
127     diag("Check your network connectivity and verify that you can manually browse this page in IE.");
128     diag("Then, re-run these tests.");
129     diag("");
130     diag("If the tests still do not work, please submit a ticket to:");
131     diag("http://www.honeyclient.org/trac/newticket");
132     diag("");
133     fail("The drive() call failed.");
134 }
135 }
136
137
138
139
140 1;
Note: See TracBrowser for help on using the browser.