Przeglądaj źródła

Start adding tests for Test::Selenium::Remote::WebElement that don't require a Selenium server.

Mark Stosberg 12 lat temu
rodzic
commit
a3b6a97bc6
1 zmienionych plików z 53 dodań i 0 usunięć
  1. 53 0
      t/Test-Selenium-Remote-Driver.t

+ 53 - 0
t/Test-Selenium-Remote-Driver.t

@@ -0,0 +1,53 @@
+#!/usr/bin/env perl
+use Test::Tester;
+use Test::More;
+use Test::MockObject;
+use Test::MockObject::Extends;
+use Test::Selenium::Remote::Driver;
+use Selenium::Remote::WebElement;
+
+# Temporarily override the 'new()' in the parent class, so that it doesn't try to make network connections.
+sub Selenium::Remote::Driver::new {
+    my ( $class, %args ) = @_;
+
+    my $self = {
+        remote_server_addr => delete $args{remote_server_addr}        || 'localhost',
+        browser_name       => delete $args{browser_name}              || 'firefox',
+        platform           => delete $args{platform}                  || 'ANY',
+        port               => delete $args{port}                      || '4444',
+        version            => delete $args{version}                   || '',
+        webelement_class   => delete $args{webelement_class}          || "Selenium::Remote::WebElement",
+        default_finder     => delete $args{default_finder}            || 'xpath',
+        session_id         => undef,
+        remote_conn        => undef,
+        auto_close         => 1, # by default we will close remote session on DESTROY
+        pid                => $$
+    };
+    bless $self, $class or die "Can't bless $class: $!";
+}
+
+
+# Start off by faking a bunch of Selenium::Remote::Driver calls succeeding
+my $successful_driver = Test::Selenium::Remote::Driver->new;
+$successful_driver =  Test::MockObject::Extends->new( $successful_driver );
+
+my $element = Test::Selenium::Remote::WebElement->new(
+    id => '1342835311100',
+    parent => $successful_driver,
+);
+
+
+$successful_driver->mock('find_element', sub { $element } );
+
+check_tests(
+  sub { $successful_driver->find_element_ok('q', 'find_element_ok works'); },
+  {
+    ok => 1,
+    name => "find_element_ok works",
+    diag => "",
+  }
+);
+
+
+
+done_testing();