css_parser_master 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class RuleSetExpandingShorthandTests < Test::Unit::TestCase
4
+ include CssParser
5
+
6
+ def setup
7
+ @cp = CssParser::Parser.new
8
+ end
9
+
10
+ # ==== Dimensions shorthand
11
+ def test_getting_dimensions_from_shorthand
12
+ # test various shorthand forms
13
+ ['margin: 0px auto', 'margin: 0px auto 0px', 'margin: 0px auto 0px'].each do |shorthand|
14
+ declarations = expand_declarations(shorthand)
15
+ assert_equal({"margin-right" => "auto", "margin-bottom" => "0px", "margin-left" => "auto", "margin-top" => "0px"}, declarations)
16
+ end
17
+
18
+ # test various units
19
+ ['em', 'ex', 'in', 'px', 'pt', 'pc', '%'].each do |unit|
20
+ shorthand = "margin: 0% -0.123#{unit} 9px -.9pc"
21
+ declarations = expand_declarations(shorthand)
22
+ assert_equal({"margin-right" => "-0.123#{unit}", "margin-bottom" => "9px", "margin-left" => "-.9pc", "margin-top" => "0%"}, declarations)
23
+ end
24
+ end
25
+
26
+
27
+ protected
28
+ def expand_declarations(declarations)
29
+ ruleset = RuleSet.new(nil, declarations)
30
+ ruleset.expand_shorthand!
31
+
32
+ collected = {}
33
+
34
+ # ruleset.each_declaration do |prop, val, imp|
35
+ ruleset.each_declaration do |decl|
36
+ collected[decl.property.to_s] = decl.value.to_s
37
+ end
38
+ collected
39
+ end
40
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ # Test cases for the CssParser.
4
+ class CssSelectorTests < Test::Unit::TestCase
5
+ include CssParser
6
+
7
+ def setup
8
+ @cp = Parser.new
9
+ end
10
+
11
+ def test_at_page_rule
12
+ # from http://www.w3.org/TR/CSS21/page.html#page-selectors
13
+ css = <<-EOT
14
+ @page { margin: 2cm }
15
+
16
+ @page :first {
17
+ margin-top: 10cm
18
+ }
19
+ EOT
20
+
21
+ @cp.add_block!(css)
22
+
23
+ assert_equal 'margin: 2cm;', @cp.find_by_selector('@page').join(' ')
24
+ # assert_equal 'margin-top: 10cm;', @cp.find_by_selector('@page :first').join(' ')
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ # Test cases for reading and generating CSS shorthand properties
4
+ class CssSelectorParserTests < Test::Unit::TestCase
5
+ include CssParser
6
+
7
+ def setup
8
+ @cp = CssParser::Parser.new
9
+ @css = <<-EOT
10
+ html, body, p { margin: 0px; }
11
+ p { padding: 0px; }
12
+ #content { font: 12px/normal sans-serif; }
13
+ EOT
14
+ end
15
+
16
+ def test_selector_parser
17
+ selector = CssParser::Selector.new('table', 'margin: 0px', 9999)
18
+ # puts selector.inspect
19
+
20
+ selector.each_declaration do |decl|
21
+ # puts decl.inspect
22
+ end
23
+
24
+ selector = CssParser::Selector.new('table', 'margin: 0px; padding: 0px;', 9999)
25
+ # puts selector.inspect
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: css_parser_master
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 2
8
+ - 4
9
+ version: 1.2.4
10
+ platform: ruby
11
+ authors:
12
+ - Kristian Mandrup
13
+ - Alex Dunae
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-05-27 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Parse a CSS file and access/operate on rulesets, selectors, declarations etc. Includes specificity calculated according to W3C spec.
23
+ email: kmandrup@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files:
29
+ - LICENSE
30
+ - README
31
+ - README.rdoc
32
+ files:
33
+ - .gitignore
34
+ - CHANGELOG
35
+ - LICENSE
36
+ - README
37
+ - README.rdoc
38
+ - Rakefile.rb
39
+ - VERSION
40
+ - lib/css_parser_master.rb
41
+ - lib/css_parser_master/declaration.rb
42
+ - lib/css_parser_master/declaration_api.rb
43
+ - lib/css_parser_master/declarations.rb
44
+ - lib/css_parser_master/parser.rb
45
+ - lib/css_parser_master/regexps.rb
46
+ - lib/css_parser_master/rule_set.rb
47
+ - lib/css_parser_master/selector.rb
48
+ - lib/css_parser_master/selectors.rb
49
+ - test/fixtures/import-circular-reference.css
50
+ - test/fixtures/import-with-media-types.css
51
+ - test/fixtures/import1.css
52
+ - test/fixtures/simple.css
53
+ - test/fixtures/subdir/import2.css
54
+ - test/test_css_parser_basic.rb
55
+ - test/test_css_parser_loading.rb
56
+ - test/test_css_parser_media_types.rb
57
+ - test/test_css_parser_misc.rb
58
+ - test/test_css_parser_regexps.rb
59
+ - test/test_helper.rb
60
+ - test/test_merging.rb
61
+ - test/test_rule_set.rb
62
+ - test/test_rule_set_creating_shorthand.rb
63
+ - test/test_rule_set_expanding_shorthand.rb
64
+ - test/test_ruleset_expand.rb
65
+ - test/test_selector.rb
66
+ - test/test_selector_parsing.rb
67
+ has_rdoc: true
68
+ homepage: http://github.com/kristianmandrup/load-me
69
+ licenses: []
70
+
71
+ post_install_message:
72
+ rdoc_options:
73
+ - --charset=UTF-8
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ requirements: []
93
+
94
+ rubyforge_project:
95
+ rubygems_version: 1.3.7
96
+ signing_key:
97
+ specification_version: 3
98
+ summary: Parse CSS files, access and operate on a model of the CSS rules
99
+ test_files:
100
+ - test/test_css_parser_basic.rb
101
+ - test/test_css_parser_loading.rb
102
+ - test/test_css_parser_media_types.rb
103
+ - test/test_css_parser_misc.rb
104
+ - test/test_css_parser_regexps.rb
105
+ - test/test_helper.rb
106
+ - test/test_merging.rb
107
+ - test/test_rule_set.rb
108
+ - test/test_rule_set_creating_shorthand.rb
109
+ - test/test_rule_set_expanding_shorthand.rb
110
+ - test/test_ruleset_expand.rb
111
+ - test/test_selector.rb
112
+ - test/test_selector_parsing.rb