|
|
@@ -75,49 +75,75 @@ CUSTOM_EXTENSION_LOADED: {
|
|
|
"custom profile with extension loaded");
|
|
|
}
|
|
|
|
|
|
-PREFERENCES_FORMATTING: {
|
|
|
+PREFERENCES: {
|
|
|
my $profile = Selenium::Remote::Driver::Firefox::Profile->new();
|
|
|
- my $prefs = {
|
|
|
- 'string' => "howdy, there",
|
|
|
- 'integer' => 12345,
|
|
|
- 'true' => JSON::true,
|
|
|
- 'false' => JSON::false,
|
|
|
- 'string.like.integer' => '"12345"',
|
|
|
- };
|
|
|
-
|
|
|
- my %expected = map {
|
|
|
- my $q = $_ eq 'string' ? '"' : '';
|
|
|
- $_ => $q . $prefs->{$_} . $q
|
|
|
- } keys %$prefs;
|
|
|
-
|
|
|
- $profile->set_preference(%$prefs);
|
|
|
-
|
|
|
- foreach (keys %$prefs) {
|
|
|
- cmp_ok($profile->get_preference($_), "eq", $expected{$_},
|
|
|
- "$_ preference is formatted properly");
|
|
|
+ # We're keeping the expected values together as we accumulate them
|
|
|
+ # so we can validate them all at the end in the pack_and_unpack
|
|
|
+ # section
|
|
|
+ my $expected = {};
|
|
|
+
|
|
|
+ STRINGS_AND_INTEGERS: {
|
|
|
+ my $prefs = {
|
|
|
+ 'string' => "howdy, there",
|
|
|
+ 'integer' => 12345,
|
|
|
+ 'string.like.integer' => '"12345"',
|
|
|
+ };
|
|
|
+
|
|
|
+ foreach (keys %$prefs) {
|
|
|
+ my $q = $_ eq 'string' ? '"' : '';
|
|
|
+ $expected->{$_} = $q . $prefs->{$_} . $q;
|
|
|
+ }
|
|
|
+
|
|
|
+ $profile->set_preference(%$prefs);
|
|
|
+
|
|
|
+ foreach (keys %$prefs) {
|
|
|
+ cmp_ok($profile->get_preference($_), "eq", $expected->{$_},
|
|
|
+ "$_ preference is formatted properly");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- my $encoded = $profile->_encode();
|
|
|
- my $fh = File::Temp->new();
|
|
|
- print $fh decode_base64($encoded);
|
|
|
- close $fh;
|
|
|
- my $zip = Archive::Extract->new(
|
|
|
- archive => $fh->filename,
|
|
|
- type => "zip"
|
|
|
- );
|
|
|
- my $tempdir = File::Temp->newdir();
|
|
|
- my $ok = $zip->extract( to => $tempdir );
|
|
|
- my $outdir = $zip->extract_path;
|
|
|
-
|
|
|
- my $filename = $tempdir . "/user.js";
|
|
|
- open ($fh, "<", $filename);
|
|
|
- my (@file) = <$fh>;
|
|
|
- close ($fh);
|
|
|
- my $userjs = join('', @file);
|
|
|
-
|
|
|
- foreach (keys %expected) {
|
|
|
- cmp_ok($userjs, "=~", qr/$expected{$_}\);/,
|
|
|
- "$_ preference is formatted properly after packing and unpacking");
|
|
|
+ BOOLEANS: {
|
|
|
+ my $prefs = {
|
|
|
+ 'boolean.true' => 1,
|
|
|
+ 'boolean.false' => 0,
|
|
|
+ };
|
|
|
+
|
|
|
+ foreach (keys %$prefs) {
|
|
|
+ $expected->{$_} = $prefs->{$_} ? 'true' : 'false';
|
|
|
+ }
|
|
|
+
|
|
|
+ $profile->set_boolean_preference(%$prefs);
|
|
|
+
|
|
|
+ foreach (keys %$prefs) {
|
|
|
+ cmp_ok($profile->get_preference($_), "eq", $expected->{$_},
|
|
|
+ "$_ pref is formatted correctly");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ PACK_AND_UNPACK: {
|
|
|
+ my $encoded = $profile->_encode();
|
|
|
+ my $fh = File::Temp->new();
|
|
|
+ print $fh decode_base64($encoded);
|
|
|
+ close $fh;
|
|
|
+ my $zip = Archive::Extract->new(
|
|
|
+ archive => $fh->filename,
|
|
|
+ type => "zip"
|
|
|
+ );
|
|
|
+ my $tempdir = File::Temp->newdir();
|
|
|
+ my $ok = $zip->extract( to => $tempdir );
|
|
|
+ my $outdir = $zip->extract_path;
|
|
|
+
|
|
|
+ my $filename = $tempdir . "/user.js";
|
|
|
+ open ($fh, "<", $filename);
|
|
|
+ my (@file) = <$fh>;
|
|
|
+ close ($fh);
|
|
|
+ my $userjs = join('', @file);
|
|
|
+
|
|
|
+ foreach (keys %$expected) {
|
|
|
+ my $value = $expected->{$_};
|
|
|
+ cmp_ok($userjs, "=~", qr/$value\);/,
|
|
|
+ "$_ preference is formatted properly after packing and unpacking");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|