123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- use strict;
- use warnings;
- use Test::More;
- use Test::Fatal;
- use Test::LWP::UserAgent;
- BEGIN: {
- unless (use_ok('Selenium::Remote::RemoteConnection')) {
- BAIL_OUT("Couldn't load Selenium::Remote::RemoteConnection");
- exit;
- }
- }
- ABSOLUTE_PATH_REDIRECTS: {
- my $tua = Test::LWP::UserAgent->new(max_redirect => 0);
- $tua->map_response(qr/redirect/, HTTP::Response->new(303, undef, ['Location' => '/elsewhere']));
- $tua->map_response(qr/^http:\/\/localhost:80\/elsewhere$/, HTTP::Response->new(
- 200,
- 'OK',
- ['Content-Type' => 'application/json'],
- ''
- ));
- my $conn = Selenium::Remote::RemoteConnection->new(
- remote_server_addr => 'localhost',
- port => '80',
- ua => $tua
- );
- my $redirect_endpoint = {
- method => 'GET',
- url => 'http://localhost/redirect'
- };
- my $resp = $conn->request($redirect_endpoint);
- is($resp->{cmd_status}, 'OK', 'can redirect to absolute path');
- }
- REDIRECT: {
- my $tua = Test::LWP::UserAgent->new(
- max_redirect => 0
- );
- $tua->map_response(qr/redirect/, HTTP::Response->new(303, undef, ['Location' => 'http://localhost/elsewhere']));
- $tua->map_response(qr/elsewhere/, HTTP::Response->new(200, 'OK', undef, ''));
- my $conn = Selenium::Remote::RemoteConnection->new(
- remote_server_addr => 'localhost',
- port => '',
- ua => $tua
- );
- my $redirect_endpoint = {
- method => 'GET',
- url => 'http://localhost/redirect'
- };
- is( exception { $conn->request($redirect_endpoint) }, undef,
- '303 redirects no longer kill us');
- }
- WD_CONTEXT: {
- my $tua = Test::LWP::UserAgent->new;
- my $hit_custom_context = 0;
- my $response = sub {
- is($_[0]->uri, 'http://addr:port/test/anything', 'can construct url with custom wd_context' );
- $hit_custom_context++;
- return HTTP::Response->new(200, 'OK', undef, '')
- };
- $tua->map_response(qr/test/, $response);
- my $conn = Selenium::Remote::RemoteConnection->new(
- remote_server_addr => 'addr',
- port => 'port',
- wd_context_prefix => '/test',
- ua => $tua
- );
- my $endpoint = { method => 'GET', url => 'anything' };
- $conn->request($endpoint);
- ok($hit_custom_context, 'wd_context is set up properly');
- }
- done_testing;
|