1
0
Эх сурвалжийг харах

Merge pull request #239 from gempesaw/firefox-binary-custom-preference

Stop overwriting user custom preferences when using Selenium::Firefox
Daniel Gempesaw 10 жил өмнө
parent
commit
c6986fee82

+ 5 - 1
Changes

@@ -1,6 +1,10 @@
 Revision history for Selenium-Remote-Driver
 
-0.27 08-30-2015
+0.2701 01-07-2015
+        [BUG FIXES]
+        - #239: Respect existing prefs when using custom profile with Selenium::Firefox
+
+0.27   08-30-2015
         [NEW FEATURES]
         - #219: Add `startup_timeout` to CanStartBinary role
         - #211: @peroumal1: Document locator usage for Test::SRD functions

+ 5 - 3
lib/Selenium/Firefox/Profile.pm

@@ -199,10 +199,12 @@ sub add_webdriver {
         close ($fh);
     }
     my $webdriver_prefs = decode_json($json);
+    my $current_user_prefs = $self->{user_prefs};
 
-    # TODO: Let the user's mutable preferences persist instead of
-    # overwriting them here.
-    $self->set_preference(%{ $webdriver_prefs->{mutable} });
+    $self->set_preference(
+        %{ $webdriver_prefs->{mutable} },
+        %{ $current_user_prefs }
+    );
     $self->set_preference(%{ $webdriver_prefs->{frozen} });
 
     $self->add_extension($webdriver_extension);

+ 13 - 0
t/Firefox-Profile.t

@@ -151,6 +151,19 @@ PREFERENCES: {
                    "$_ preference is formatted properly after packing and unpacking");
         }
     }
+
+  MUTABLE_WEBDRIVER: {
+        my $prefs = {
+            'browser.startup.homepage' => 'mutable!'
+        };
+
+        my $profile = Selenium::Firefox::Profile->new;
+        $profile->set_preference(%$prefs);
+        $profile->add_webdriver('port');
+
+        my $homepage_pref = $profile->get_preference('browser.startup.homepage');
+        is($homepage_pref, '"mutable!"', 'can mutate webdriver.json preferences');
+    }
 }
 
 CROAKING: {