The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use lib qw( ./lib ../lib );

use Test::More;
plan(tests => 4);

use_ok('CSS::Simple');

my $css = <<END;
h1 {
	color: blue; font-size: large;
}

#program-editor *::after {
	box-sizing: border-box;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
END

# test for presence of browser specific properties when the related option is enabled
my $simple1 = CSS::Simple->new({browser_specific_properties => 1});

$simple1->read({css => $css});

my $properties1 = [sort keys $simple1->get_properties({selector => '#program-editor *::after'})];

my $expected1 = ['-moz-user-select', '-ms-user-select', '-webkit-touch-callout', '-webkit-user-select', 'box-sizing', 'user-select'];

is_deeply($expected1, $properties1, 'browser specific properties processed');

# test for presence of browser specific properties when the related option is disabled
my $simple2 = CSS::Simple->new({browser_specific_properties => 0});
$simple2->read({css => $css});

my $properties2 = [sort keys $simple2->get_properties({selector => '#program-editor *::after'})];

my $expected2 = ['box-sizing','user-select'];

is_deeply($expected2, $properties2, 'browser specific properties ignored');

# test for presence of browser specific properties when the related option is unspecified
my $simple3 = CSS::Simple->new();
$simple3->read({css => $css});

my $properties3 = [sort keys $simple3->get_properties({selector => '#program-editor *::after'})];

my $expected3 = ['box-sizing','user-select'];

is_deeply($expected3, $properties3, 'browser specific properties ignored');