summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java45
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java24
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/100-test_optional_extend_does_not_warn_when_extension_fails.css (renamed from theme-compiler/tests/resources/sasslang/css/100-test_optional_extend_does_not_warn_when_extension_fails.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css (renamed from theme-compiler/tests/resources/sasslang/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/36-test_extend_self_loop.css (renamed from theme-compiler/tests/resources/sasslang/css/36-test_extend_self_loop.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/37-test_extend_warns_when_extendee_doesnt_exist.css (renamed from theme-compiler/tests/resources/sasslang/css/37-test_extend_warns_when_extendee_doesnt_exist.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/38-test_extend_warns_when_extension_fails.css (renamed from theme-compiler/tests/resources/sasslang/css/38-test_extend_warns_when_extension_fails.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/57-test_long_extendee_requires_all_selectors.css (renamed from theme-compiler/tests/resources/sasslang/css/57-test_long_extendee_requires_all_selectors.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/60-test_long_extender_aborts_unification.css (renamed from theme-compiler/tests/resources/sasslang/css/60-test_long_extender_aborts_unification.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/71-test_nested_extender_aborts_unification.css (renamed from theme-compiler/tests/resources/sasslang/css/71-test_nested_extender_aborts_unification.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css (renamed from theme-compiler/tests/resources/sasslang/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css (renamed from theme-compiler/tests/resources/sasslang/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss (renamed from theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss (renamed from theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/36-test_extend_self_loop.scss (renamed from theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss (renamed from theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/38-test_extend_warns_when_extension_fails.scss (renamed from theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/57-test_long_extendee_requires_all_selectors.scss (renamed from theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/60-test_long_extender_aborts_unification.scss (renamed from theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/71-test_nested_extender_aborts_unification.scss (renamed from theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss (renamed from theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss)0
-rw-r--r--theme-compiler/tests/resources/sasslangbroken/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss (renamed from theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss)0
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004a.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004c.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004d.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005a.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005c.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005d.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009a.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009e.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-non-replaced-width-margin-000.0.scss93
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/abspos-replaced-width-margin-000.0.scss88
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/anonymous-boxes-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.1.scssbin0 -> 174 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.1.scssbin0 -> 175 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.1.scssbin0 -> 175 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.1.scssbin0 -> 180 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.1.scssbin0 -> 180 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-001.0.scss40
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-002.0.scss42
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-003.0.scss42
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-004.0.scss45
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-005.0.scss45
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-006.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-007.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-008.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-009.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-display-types-001.0.scss25
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-attr-001.0.scss12
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-restyle-001.0.scss11
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-floated-001.0.scss29
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-images-001.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.0.scss44
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/before-after-table-whitespace-001.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-001.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001c.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001d.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001e.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001f.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001g.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001h.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001i.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001j.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001k.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001l.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002c.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002d.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002e.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002f.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002g.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002h.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002i.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-003.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-004.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-006.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-007.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008c.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-009.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-010.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-011.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-012.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-015.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-002.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-003.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-004.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-005.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-006.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.1.scssbin0 -> 131 bytes
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-1.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-10.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-11.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-13.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14.0.scss10
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-144.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-148.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14b.0.scss10
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14c.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14d.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14e.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-15.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-150.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-151.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-152.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155b.0.scss10
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155d.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-159.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-16.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-160.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-161.0.scss26
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-17.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170d.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-176.0.scss11
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-178.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179a.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-180a.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-181.0.scss15
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184d.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184e.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184f.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18a.0.scss12
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-2.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-20.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21c.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-22.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-23.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-24.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-25.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27a.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-30.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-31.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-32.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-33.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-34.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-35.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-36.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-37.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-38.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39a.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39b.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39c.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-3a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-4.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41a.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42a.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44d.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45c.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-5.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-54.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-55.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-56.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-59.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-6.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-60.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-61.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-62.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-63.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-64.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-65.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-68.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-69.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-70.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-79.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7b.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-8.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-80.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-86.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-89.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-9.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90b.0.scss3
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1b.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d2.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d4.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003a.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003b.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-004.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-005.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-006.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-007.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-002.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-003.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-004.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-005.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-006.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-floats-004.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-001.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-002.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-003.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.12.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.24.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.8.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.9.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.0.scss12
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.10.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.11.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.12.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.13.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.131.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.14.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.15.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.16.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.17.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.18.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.19.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.20.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.21.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.22.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.23.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.24.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.25.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.26.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.27.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.28.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.29.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.30.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.31.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.32.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.33.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.6.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.65.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.66.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.7.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.8.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.9.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.98.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.99.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.15.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.16.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.19.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.20.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.23.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.24.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.27.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.28.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.31.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.39.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.40.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.43.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.44.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.48.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.7.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.8.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-outside-001.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-001.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-002.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-003.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-004.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-005.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-006.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-007.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-008.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-009.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-012.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-013.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-014.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-016.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-017.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-018.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-019.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-020.0.scss9
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-021.0.scss10
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-022.0.scss14
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-023.0.scss20
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-family-name-024.0.scss26
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-weight-bolder-001.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-weight-lighter-001.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/font-weight-normal-001.0.scss43
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-000.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-height-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-height-002.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-002.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002a.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-002.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-003.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-004.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-005.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-002a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-002b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-003.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-height-001.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-height-002.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-valign-001.0.scss15
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001a.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001b.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002a.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002b.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-002.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-003.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-004.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-005.0.scss7
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/quotes-035.0.scss29
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/quotes-035a.0.scss31
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/quotes-036.0.scss35
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/ref-green-box-100x100.0.scss8
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-cell-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-colgroup-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-column-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-row-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-rowgroup-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-table-001.0.scss33
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-cell-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-colgroup-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-column-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-row-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-rowgroup-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-table-001.0.scss34
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.6.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.6.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.0.scss6
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-113.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-114.0.scss4
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-115.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.11.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.8.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.11.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.8.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.11.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.17.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.25.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.3.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.5.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.0.scss17
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.10.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.16.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.2.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.24.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-percent-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-indent-wrap-001.0.scss5
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.1.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.4.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.7.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-lowercase-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-001.0.scss2
-rw-r--r--theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-002.0.scss2
-rw-r--r--theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java44
-rw-r--r--theme-compiler/tests/src/com/vaadin/sass/testcases/scss/W3ConformanceTests.java241
732 files changed, 4286 insertions, 24 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java
index 7213553e18..ed6b98f5ac 100644
--- a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java
+++ b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java
@@ -93,19 +93,49 @@ public class ScssStylesheet extends Node {
}
/**
- * Main entry point for the SASS compiler. Takes in a file and encoding then
- * builds up a ScssStylesheet tree out of it. Calling compile() on it will
- * transform SASS into CSS. Calling toString() will print out the SCSS/CSS.
+ * Main entry point for the SASS compiler. Takes in a file and an optional
+ * parent style sheet, then builds up a ScssStylesheet tree out of it.
+ * Calling compile() on it will transform SASS into CSS. Calling toString()
+ * will print out the SCSS/CSS.
*
* @param identifier
* The file path. If null then null is returned.
- * @param encoding
+ * @param parentStylesheet
+ * Style sheet from which to inherit resolvers and encoding. May
+ * be null.
* @return
* @throws CSSException
* @throws IOException
*/
public static ScssStylesheet get(String identifier,
ScssStylesheet parentStylesheet) throws CSSException, IOException {
+ return get(identifier, parentStylesheet, new SCSSDocumentHandlerImpl(),
+ new SCSSErrorHandler());
+ }
+
+ /**
+ * Main entry point for the SASS compiler. Takes in a file, an optional
+ * parent stylesheet, and document and error handlers. Then builds up a
+ * ScssStylesheet tree out of it. Calling compile() on it will transform
+ * SASS into CSS. Calling toString() will print out the SCSS/CSS.
+ *
+ * @param identifier
+ * The file path. If null then null is returned.
+ * @param parentStylesheet
+ * Style sheet from which to inherit resolvers and encoding. May
+ * be null.
+ * @param documentHandler
+ * Instance of document handler. May not be null.
+ * @param errorHandler
+ * Instance of error handler. May not be null.
+ * @return
+ * @throws CSSException
+ * @throws IOException
+ */
+ public static ScssStylesheet get(String identifier,
+ ScssStylesheet parentStylesheet,
+ SCSSDocumentHandler documentHandler, SCSSErrorHandler errorHandler)
+ throws CSSException, IOException {
/*
* The encoding to be used is passed through "encoding" parameter. the
* imported children scss node will have the same encoding as their
@@ -123,8 +153,7 @@ public class ScssStylesheet extends Node {
File file = new File(identifier);
file = file.getCanonicalFile();
- SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
- ScssStylesheet stylesheet = handler.getStyleSheet();
+ ScssStylesheet stylesheet = documentHandler.getStyleSheet();
if (parentStylesheet == null) {
// Use default resolvers
stylesheet.addResolver(new FilesystemResolver());
@@ -143,8 +172,8 @@ public class ScssStylesheet extends Node {
}
Parser parser = new Parser();
- parser.setErrorHandler(new SCSSErrorHandler());
- parser.setDocumentHandler(handler);
+ parser.setErrorHandler(errorHandler);
+ parser.setDocumentHandler(documentHandler);
try {
parser.parseStyleSheet(source);
diff --git a/theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java b/theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java
index 2e51c686d4..0d48da34e4 100644
--- a/theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java
+++ b/theme-compiler/src/com/vaadin/sass/internal/handler/SCSSErrorHandler.java
@@ -15,34 +15,46 @@
*/
package com.vaadin.sass.internal.handler;
+import java.io.PrintStream;
+
import org.w3c.css.sac.CSSException;
import org.w3c.css.sac.CSSParseException;
import org.w3c.css.sac.ErrorHandler;
public class SCSSErrorHandler implements ErrorHandler {
+ private PrintStream errorStream;
+
+ public SCSSErrorHandler(PrintStream errorStream) {
+ this.errorStream = errorStream;
+ }
+
+ public SCSSErrorHandler() {
+ this(System.out);
+ }
+
@Override
public void error(CSSParseException arg0) throws CSSException {
- System.out.println("Error when parsing file \n" + arg0.getURI()
+ errorStream.println("Error when parsing file \n" + arg0.getURI()
+ " on line " + arg0.getLineNumber() + ", column "
+ arg0.getColumnNumber());
- System.out.println(arg0.getMessage() + "\n");
+ errorStream.println(arg0.getMessage() + "\n");
}
@Override
public void fatalError(CSSParseException arg0) throws CSSException {
- System.out.println("FATAL Error when parsing file \n" + arg0.getURI()
+ errorStream.println("FATAL Error when parsing file \n" + arg0.getURI()
+ " on line " + arg0.getLineNumber() + ", column "
+ arg0.getColumnNumber());
- System.out.println(arg0.getMessage() + "\n");
+ errorStream.println(arg0.getMessage() + "\n");
}
@Override
public void warning(CSSParseException arg0) throws CSSException {
- System.out.println("Warning when parsing file \n" + arg0.getURI()
+ errorStream.println("Warning when parsing file \n" + arg0.getURI()
+ " on line " + arg0.getLineNumber() + ", column "
+ arg0.getColumnNumber());
- System.out.println(arg0.getMessage() + "\n");
+ errorStream.println(arg0.getMessage() + "\n");
}
}
diff --git a/theme-compiler/tests/resources/sasslang/css/100-test_optional_extend_does_not_warn_when_extension_fails.css b/theme-compiler/tests/resources/sasslangbroken/css/100-test_optional_extend_does_not_warn_when_extension_fails.css
index 29116d880b..29116d880b 100644
--- a/theme-compiler/tests/resources/sasslang/css/100-test_optional_extend_does_not_warn_when_extension_fails.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/100-test_optional_extend_does_not_warn_when_extension_fails.css
diff --git a/theme-compiler/tests/resources/sasslang/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css b/theme-compiler/tests/resources/sasslangbroken/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css
index 77b7586abb..77b7586abb 100644
--- a/theme-compiler/tests/resources/sasslang/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.css
diff --git a/theme-compiler/tests/resources/sasslang/css/36-test_extend_self_loop.css b/theme-compiler/tests/resources/sasslangbroken/css/36-test_extend_self_loop.css
index 234d524066..234d524066 100644
--- a/theme-compiler/tests/resources/sasslang/css/36-test_extend_self_loop.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/36-test_extend_self_loop.css
diff --git a/theme-compiler/tests/resources/sasslang/css/37-test_extend_warns_when_extendee_doesnt_exist.css b/theme-compiler/tests/resources/sasslangbroken/css/37-test_extend_warns_when_extendee_doesnt_exist.css
index 8b13789179..8b13789179 100644
--- a/theme-compiler/tests/resources/sasslang/css/37-test_extend_warns_when_extendee_doesnt_exist.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/37-test_extend_warns_when_extendee_doesnt_exist.css
diff --git a/theme-compiler/tests/resources/sasslang/css/38-test_extend_warns_when_extension_fails.css b/theme-compiler/tests/resources/sasslangbroken/css/38-test_extend_warns_when_extension_fails.css
index 29116d880b..29116d880b 100644
--- a/theme-compiler/tests/resources/sasslang/css/38-test_extend_warns_when_extension_fails.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/38-test_extend_warns_when_extension_fails.css
diff --git a/theme-compiler/tests/resources/sasslang/css/57-test_long_extendee_requires_all_selectors.css b/theme-compiler/tests/resources/sasslangbroken/css/57-test_long_extendee_requires_all_selectors.css
index 234d524066..234d524066 100644
--- a/theme-compiler/tests/resources/sasslang/css/57-test_long_extendee_requires_all_selectors.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/57-test_long_extendee_requires_all_selectors.css
diff --git a/theme-compiler/tests/resources/sasslang/css/60-test_long_extender_aborts_unification.css b/theme-compiler/tests/resources/sasslangbroken/css/60-test_long_extender_aborts_unification.css
index 18bc24e7cd..18bc24e7cd 100644
--- a/theme-compiler/tests/resources/sasslang/css/60-test_long_extender_aborts_unification.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/60-test_long_extender_aborts_unification.css
diff --git a/theme-compiler/tests/resources/sasslang/css/71-test_nested_extender_aborts_unification.css b/theme-compiler/tests/resources/sasslangbroken/css/71-test_nested_extender_aborts_unification.css
index 2337e9af40..2337e9af40 100644
--- a/theme-compiler/tests/resources/sasslang/css/71-test_nested_extender_aborts_unification.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/71-test_nested_extender_aborts_unification.css
diff --git a/theme-compiler/tests/resources/sasslang/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css b/theme-compiler/tests/resources/sasslangbroken/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css
index 09b4ccac27..09b4ccac27 100644
--- a/theme-compiler/tests/resources/sasslang/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.css
diff --git a/theme-compiler/tests/resources/sasslang/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css b/theme-compiler/tests/resources/sasslangbroken/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css
index 8b13789179..8b13789179 100644
--- a/theme-compiler/tests/resources/sasslang/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css
+++ b/theme-compiler/tests/resources/sasslangbroken/css/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.css
diff --git a/theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss b/theme-compiler/tests/resources/sasslangbroken/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss
index 6d707236f2..6d707236f2 100644
--- a/theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss b/theme-compiler/tests/resources/sasslangbroken/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss
index 713644b221..713644b221 100644
--- a/theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss b/theme-compiler/tests/resources/sasslangbroken/scss/36-test_extend_self_loop.scss
index ac40f00573..ac40f00573 100644
--- a/theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/36-test_extend_self_loop.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss b/theme-compiler/tests/resources/sasslangbroken/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss
index cd54108c97..cd54108c97 100644
--- a/theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss b/theme-compiler/tests/resources/sasslangbroken/scss/38-test_extend_warns_when_extension_fails.scss
index 8381c7279a..8381c7279a 100644
--- a/theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/38-test_extend_warns_when_extension_fails.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss b/theme-compiler/tests/resources/sasslangbroken/scss/57-test_long_extendee_requires_all_selectors.scss
index 011d26a83e..011d26a83e 100644
--- a/theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/57-test_long_extendee_requires_all_selectors.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss b/theme-compiler/tests/resources/sasslangbroken/scss/60-test_long_extender_aborts_unification.scss
index 5238f3f93e..5238f3f93e 100644
--- a/theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/60-test_long_extender_aborts_unification.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss b/theme-compiler/tests/resources/sasslangbroken/scss/71-test_nested_extender_aborts_unification.scss
index bcbb6e181d..bcbb6e181d 100644
--- a/theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/71-test_nested_extender_aborts_unification.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss b/theme-compiler/tests/resources/sasslangbroken/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss
index 73f6254f21..73f6254f21 100644
--- a/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss
diff --git a/theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss b/theme-compiler/tests/resources/sasslangbroken/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss
index 551764036f..551764036f 100644
--- a/theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss
+++ b/theme-compiler/tests/resources/sasslangbroken/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.0.scss
new file mode 100644
index 0000000000..2f1e55e87e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-001.htm */
+
+html { margin:10px; border:20px solid black; padding:30px; }
+body { height:10000px; margin:0; }
+div { position:absolute; width:100px; height:100px; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.1.scss
new file mode 100644
index 0000000000..7b5eace311
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-001.htm */
+.style { top:0; background:yellow; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.2.scss
new file mode 100644
index 0000000000..c94661f654
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-001.htm */
+.style { right:0; background:orange; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.3.scss
new file mode 100644
index 0000000000..893b95ca14
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-001.htm */
+.style { bottom:0; background:brown; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.4.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.4.scss
new file mode 100644
index 0000000000..71d199866c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-001.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-001.htm */
+.style { left:0; background:pink; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004a.0.scss
new file mode 100644
index 0000000000..457f6a2d2f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004a.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004a.htm */
+.style { position:absolute; left:100px; top:100px; width:100px; height:100px; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004b.0.scss
new file mode 100644
index 0000000000..8990089fb6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004b.htm */
+.style { position:fixed; left:100px; top:100px; width:100px; height:100px; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004c.0.scss
new file mode 100644
index 0000000000..1bad688abe
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004c.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004c.htm */
+.style { position:absolute; left:100px; top:100px; width:100px; height:100px; background:yellow; border:10px solid black; display:table; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004d.0.scss
new file mode 100644
index 0000000000..8f8b50e4c7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004d.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004d.htm */
+.style { position:fixed; left:100px; top:100px; width:100px; height:100px; background:yellow; border:10px solid black; display:table }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.0.scss
new file mode 100644
index 0000000000..0c460b5c3f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004e.htm */
+.style { display:table }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.1.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.1.scss
new file mode 100644
index 0000000000..29c22194fd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004e.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004e.htm */
+.style { position:absolute; left:100px; top:100px; width:100px; height:100px; border:10px solid black; background:yellow; margin:0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.0.scss
new file mode 100644
index 0000000000..33f39b6ab6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004f.htm */
+.style { display:table }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.1.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.1.scss
new file mode 100644
index 0000000000..c458e5dc33
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-004f.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-004f.htm */
+.style { position:fixed; left:100px; top:100px; width:100px; height:100px; border:10px solid black; background:yellow; margin:0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005a.0.scss
new file mode 100644
index 0000000000..a724d1b918
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005a.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-005a.htm */
+.style { position:absolute; width:100px; height:100px; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005b.0.scss
new file mode 100644
index 0000000000..d9b1214a4b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-005b.htm */
+.style { position:absolute; width:100px; height:100px; display:table; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005c.0.scss
new file mode 100644
index 0000000000..e6e7f6b90b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005c.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-005c.htm */
+.style { position:fixed; width:100px; height:100px; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005d.0.scss
new file mode 100644
index 0000000000..1bc05d796a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-005d.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-005d.htm */
+.style { position:fixed; width:100px; height:100px; display:table; background:yellow; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.0.scss
new file mode 100644
index 0000000000..9080cba258
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-007.htm */
+.style { position:relative; top:100px; left:100px; height:100px; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.1.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.1.scss
new file mode 100644
index 0000000000..40f293c03b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-007.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-007.htm */
+.style { position:absolute; margin:0; bottom:0; height:30px; border:10px solid orange; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009a.0.scss
new file mode 100644
index 0000000000..ac865fb846
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009a.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-009a.htm */
+.style { width:50%; height:50%; margin:50px; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009b.0.scss
new file mode 100644
index 0000000000..0b108fff62
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-009b.htm */
+.style { position:absolute; left:50px; top:50px; width:50%; height:50%; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009e.0.scss
new file mode 100644
index 0000000000..f5bda4dc9f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009e.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-009e.htm */
+.style { position:absolute; width:50%; height:50%; top:50px; left:50px; margin:0; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.0.scss
new file mode 100644
index 0000000000..788e50c119
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-009f.htm */
+.style { position:relative; height:50%; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.1.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.1.scss
new file mode 100644
index 0000000000..e1c3142ad8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-containing-block-initial-009f.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-containing-block-initial-009f.htm */
+.style { position:absolute; width:50%; top:50px; left:50px; height:100%; margin:0; border:10px solid black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-non-replaced-width-margin-000.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-non-replaced-width-margin-000.0.scss
new file mode 100644
index 0000000000..69f5c2fa6a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-non-replaced-width-margin-000.0.scss
@@ -0,0 +1,93 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-non-replaced-width-margin-000.htm */
+
+
+div { height: 1px; direction: ltr; }
+
+/*
+ * Every case here has three divs nested inside of each other. The
+ * innermost div (absolutely positioned) is the testcase (and has
+ * color). The middle div's content edge establishes the containing
+ * block it would have if it were statically positioned. The outermost
+ * div is actually its containing block.
+ *
+ * the abs pos containing block runs from 50px to 700px from the left edge
+ * the static pos containing block runs from 150px to 650px from the left edge
+ */
+
+/* totals for html and body: 21px on the left, 34px on the right */
+html, body { border: transparent medium solid; }
+html { margin: 0 3px 0 2px; padding: 0 4px 0 3px; border-width: 0 3px 0 8px; }
+body { margin: 0 6px 0 3px; padding: 0 7px 0 1px; border-width: 0 11px 0 4px; }
+
+body > div {
+ position: relative;
+
+ top: 0;
+ left: 4px;
+
+ margin-left: 16px;
+ border-left: 9px solid transparent;
+ /* sum of above items (29px), plus 21px above, is 50px */
+ padding-left: 40px;
+
+ width: 595px;
+
+ padding-right: 15px;
+ /* sum of above items (650px), plus 50px above, is 700px */
+
+ border-right: 27px solid transparent;
+ margin-right: 13px;
+}
+
+body > div > div {
+ /* padding-left above: 40px */
+ margin-left: 7px;
+ border-left: 29px solid transparent;
+ padding-left: 24px;
+ /* sum of above items (100px), plus 50px above, is 150px */
+
+ /* padding-right above: 15px */
+ padding-right: 14px;
+ border-right: 3px solid transparent;
+ margin-right: 18px;
+ /* sum of above items (50px), subtracted from 700px, is 650px */
+}
+
+body > div > div > div {
+ background: navy;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+
+ /* specify everything; we'll put the autos as overrides below */
+ left: 3px;
+ margin-left: 17px;
+ border-left: 6px solid transparent;
+ padding-left: 1px;
+ padding-right: 9px;
+ border-right: 8px solid transparent;
+ margin-right: 19px;
+ right: 8px;
+}
+
+/* and give it 72px of intrinsic width for the case where it has width:auto */
+body > div > div > div > div {
+ width: 72px;
+}
+
+/* now we want to test all 128 combinations of presence of the following */
+
+body > div.adir { direction: rtl; }
+body > div.sdir > div { direction: rtl; }
+body > div.edir > div > div { direction: rtl; }
+body > div.ol > div > div { left: auto; }
+body > div.or > div > div { right: auto; }
+body > div.ml > div > div { margin-left: auto; }
+body > div.mr > div > div { margin-right: auto; }
+
+/* combined with each of these three */
+body > div.narrowwidth > div > div { width: 153px; }
+body > div.autowidth > div > div { width: auto; }
+body > div.widewidth > div > div { width: 660px; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/abspos-replaced-width-margin-000.0.scss b/theme-compiler/tests/resources/w3ctests/scss/abspos-replaced-width-margin-000.0.scss
new file mode 100644
index 0000000000..99f2a308f3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/abspos-replaced-width-margin-000.0.scss
@@ -0,0 +1,88 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/abspos-replaced-width-margin-000.htm */
+
+
+div { height: 1px; direction: ltr; }
+
+/*
+ * Every case here has two divs and an image nested inside of each other. The
+ * innermost div (absolutely positioned) is the testcase (and has
+ * color). The middle div's content edge establishes the containing
+ * block it would have if it were statically positioned. The outermost
+ * div is actually its containing block.
+ *
+ * the abs pos containing block runs from 50px to 700px from the left edge
+ * the static pos containing block runs from 150px to 650px from the left edge
+ */
+
+/* totals for html and body: 21px on the left, 34px on the right */
+html, body { border: transparent medium solid; }
+html { margin: 0 3px 0 2px; padding: 0 4px 0 3px; border-width: 0 3px 0 8px; }
+body { margin: 0 6px 0 3px; padding: 0 7px 0 1px; border-width: 0 11px 0 4px; }
+
+body > div {
+ position: relative;
+
+ top: 0;
+ left: 4px;
+
+ margin-left: 16px;
+ border-left: 9px solid transparent;
+ /* sum of above items (29px), plus 21px above, is 50px */
+ padding-left: 40px;
+
+ width: 595px;
+
+ padding-right: 15px;
+ /* sum of above items (650px), plus 50px above, is 700px */
+
+ border-right: 27px solid transparent;
+ margin-right: 13px;
+}
+
+body > div > div {
+ /* padding-left above: 40px */
+ margin-left: 7px;
+ border-left: 29px solid transparent;
+ padding-left: 24px;
+ /* sum of above items (100px), plus 50px above, is 150px */
+
+ /* padding-right above: 15px */
+ padding-right: 14px;
+ border-right: 3px solid transparent;
+ margin-right: 18px;
+ /* sum of above items (50px), subtracted from 700px, is 650px */
+}
+
+body > div > div > img {
+ background: navy;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+
+ /* specify everything; we'll put the autos as overrides below */
+ left: 3px;
+ margin-left: 17px;
+ border-left: 6px solid transparent;
+ padding-left: 1px;
+ padding-right: 9px;
+ border-right: 8px solid transparent;
+ margin-right: 19px;
+ right: 8px;
+}
+
+/* now we want to test all 128 combinations of presence of the following */
+
+body > div.adir { direction: rtl; }
+body > div.sdir > div { direction: rtl; }
+body > div.edir > div > img { direction: rtl; }
+body > div.ol > div > img { left: auto; }
+body > div.or > div > img { right: auto; }
+body > div.ml > div > img { margin-left: auto; }
+body > div.mr > div > img { margin-right: auto; }
+
+/* combined with each of these three (as appropriate for narrow/wide images) */
+body > div.narrowwidth > div > img { width: 153px; height: 1px; }
+body > div.autowidth > div > img { width: auto; }
+body > div.widewidth > div > img { width: 660px; height: 1px; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/anonymous-boxes-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/anonymous-boxes-001.0.scss
new file mode 100644
index 0000000000..3c30052779
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/anonymous-boxes-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/anonymous-boxes-001.htm */
+
+ #parent { height: 200px; position: relative; }
+ #child { float: left; height: 50%; width: 100px; background: green; position: relative }
+ #background { position: absolute; top: 0; left: 0; width: 100px; height: 100px; background: red }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.0.scss
new file mode 100644
index 0000000000..3a4f2c68a2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-quotes-001.htm */
+
+ body { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.1.scss
new file mode 100644
index 0000000000..f9ff59ef63
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-quotes-001.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.0.scss
new file mode 100644
index 0000000000..e81cd566d8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-space-001.htm */
+
+ body { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.1.scss
new file mode 100644
index 0000000000..89cf375ace
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-001.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.0.scss
new file mode 100644
index 0000000000..f37bd48b03
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-space-002.htm */
+
+ body { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.1.scss
new file mode 100644
index 0000000000..4ca1f3465a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-space-002.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.0.scss
new file mode 100644
index 0000000000..82b8dcb50a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-be-001.htm */
+
+ body { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.1.scss
new file mode 100644
index 0000000000..3bf9f5f6b4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-be-001.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.0.scss
new file mode 100644
index 0000000000..92ca00bc53
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-le-001.htm */
+
+ body { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.1.scss
new file mode 100644
index 0000000000..483b8494dd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/at-charset-utf16-le-001.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-001.0.scss
new file mode 100644
index 0000000000..ed10b1ea02
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-001.0.scss
@@ -0,0 +1,40 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-001.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ /* 100 x 120 bgpaint area */
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-none.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-none.svg);
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-002.0.scss
new file mode 100644
index 0000000000..849421d055
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-002.0.scss
@@ -0,0 +1,42 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-002.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-width.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-width.svg);
+ }
+ .control {
+ width: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-003.0.scss
new file mode 100644
index 0000000000..baac57662f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-003.0.scss
@@ -0,0 +1,42 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-003.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-height.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-height.svg);
+ }
+ .control {
+ height: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-004.0.scss
new file mode 100644
index 0000000000..22a6983830
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-004.0.scss
@@ -0,0 +1,45 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-004.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-ratio-portrait.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-ratio-portrait.svg);
+ }
+ .cover .control {
+ width: 66px;
+ }
+ .limit .control {
+ width: 67px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-005.0.scss
new file mode 100644
index 0000000000..cc0e002964
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-005.0.scss
@@ -0,0 +1,45 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-005.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-ratio-landscape.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-ratio-landscape.svg);
+ }
+ .cover .control {
+ height: 53px;
+ }
+ .limit .control {
+ height: 54px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-006.0.scss
new file mode 100644
index 0000000000..fda8699018
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-006.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-006.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-width-pc-height-pc.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-width-pc-height-pc.svg);
+ }
+ .control {
+ width: 32px;
+ height: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-007.0.scss
new file mode 100644
index 0000000000..09b38ffacb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-007.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-007.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-width-ratio.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-width-ratio.svg);
+ }
+ .control {
+ width: 40px;
+ height: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-008.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-008.0.scss
new file mode 100644
index 0000000000..f54ce9a61a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-008.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-008.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-height-ratio.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-height-ratio.svg);
+ }
+ .control {
+ width: 40px;
+ height: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-009.0.scss b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-009.0.scss
new file mode 100644
index 0000000000..6b9b2d6456
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/background-intrinsic-009.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/background-intrinsic-009.htm */
+
+ /* Setup. Use 5:6 ratio because it's weird and unlikely to be hard-coded anywhere. */
+ div {
+ position: relative;
+ }
+ .cover, .limit {
+ width: 120px;
+ height: 120px;
+ margin: 0.5em;
+ background: green; /* Used to match reference; remove for debugging. */
+ }
+ .control {
+ position: absolute;
+ top: 10px; bottom: 10px;
+ left: 10px; right: 30px;
+ }
+ .cover .control {
+ background: red;
+ }
+ .limit .control {
+ background: green;
+ }
+ .test {
+ /* 80x100 bgpos area */
+ height: 80px;
+ width: 60px;
+ padding: 10px;
+ border: 10px solid transparent;
+ }
+
+ /* Test */
+ .cover .test {
+ background: no-repeat url(support/green-intrinsic-width-height.svg);
+ }
+ .limit .test {
+ background: no-repeat url(support/red-intrinsic-width-height.svg);
+ }
+ .control {
+ width: 40px;
+ height: 60px;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-display-types-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-display-types-001.0.scss
new file mode 100644
index 0000000000..5a3d20fd24
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-display-types-001.0.scss
@@ -0,0 +1,25 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-display-types-001.htm */
+
+div { counter-reset:ctr; quotes:"\0022" "\0022" "\0022" "\0022"}
+
+div:before {
+ content:counter(ctr) url(support/square-outline-32x32.png) open-quote "Before " attr(class);
+ counter-increment:ctr;
+}
+div:after {
+ content:counter(ctr) url(support/square-outline-32x32.png) "After " attr(class) close-quote;
+ counter-increment:ctr;
+}
+
+.block:before, .block:after { display:block; }
+.inline:before, .inline:after { display:inline; }
+.inline-block:before, .inline-block:after { display:inline-block; }
+.table:before, .table:after { display:table; }
+.inline-table:before, .inline-table:after { display:inline-table; }
+.table-row-group:before, .table-row-group:after { display:table-row-group; }
+.table-row:before, .table-row:after { display:table-row; }
+.table-cell:before, .table-cell:after { display:table-cell; }
+.table-caption:before, .table-caption:after { display:table-caption; }
+
+div { border:1px solid green; margin:5px; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-attr-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-attr-001.0.scss
new file mode 100644
index 0000000000..b2b28a5c97
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-attr-001.0.scss
@@ -0,0 +1,12 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-dynamic-attr-001.htm */
+
+body {
+ font-family:sans-serif;
+}
+body:before {
+ content:attr(my-attr);
+}
+body:after {
+ content:attr(my-attr-2);
+}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-restyle-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-restyle-001.0.scss
new file mode 100644
index 0000000000..4a1861941e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-dynamic-restyle-001.0.scss
@@ -0,0 +1,11 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-dynamic-restyle-001.htm */
+
+body:before {
+ content:"Before";
+ border:inherit;
+}
+.cl:after {
+ display:block;
+ content:"After";
+}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-floated-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-floated-001.0.scss
new file mode 100644
index 0000000000..324cae53d2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-floated-001.0.scss
@@ -0,0 +1,29 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-floated-001.htm */
+
+div { counter-reset:ctr; quotes:"\0022" "\0022" "\0022" "\0022"; }
+
+div:before {
+ content:counter(ctr) url(support/square-outline-32x32.png) open-quote "Before " attr(class);
+ counter-increment:ctr;
+}
+div:after {
+ content:counter(ctr) url(support/square-outline-32x32.png) "After " attr(class) close-quote;
+ counter-increment:ctr;
+}
+
+.beforeleft:before {
+ float:left;
+}
+.beforeright:before {
+ float:right;
+}
+.afterleft:after {
+ float:left;
+}
+.afterright:after {
+ float:right;
+}
+
+div { border:1px solid green; margin:5px; }
+div { overflow:auto; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-images-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-images-001.0.scss
new file mode 100644
index 0000000000..c419306c2a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-images-001.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-images-001.htm */
+
+div:before {
+ content:url(missing-image.png);
+}
+div { border:1px solid green; margin:5px; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.0.scss
new file mode 100644
index 0000000000..a5b7d7b26b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-positioned-001.htm */
+
+div { counter-reset:ctr; quotes:"\0022" "\0022" "\0022" "\0022"; }
+
+.gen:before {
+ content:counter(ctr) url(support/square-outline-32x32.png) open-quote "Before " attr(class);
+ counter-increment:ctr;
+}
+.gen:after {
+ content:counter(ctr) url(support/square-outline-32x32.png) "After " attr(class) close-quote;
+ counter-increment:ctr;
+}
+
+.abs:before {
+ position:absolute;
+ left:0;
+}
+.abs:after {
+ position:absolute;
+ right:0;
+}
+
+.rel:before {
+ position:relative;
+ top:-10px;
+}
+.rel:after {
+ position:relative;
+ top:10px;
+}
+
+div { border:1px solid green; margin:5px; height:100px; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.1.scss
new file mode 100644
index 0000000000..33ee1ef76b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-positioned-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-positioned-001.htm */
+.style { position:relative; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.0.scss
new file mode 100644
index 0000000000..f199f3ae10
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.0.scss
@@ -0,0 +1,44 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-table-parts-001.htm */
+
+table, div.gen { counter-reset:ctr; quotes:"\0022" "\0022" "\0022" "\0022"; }
+
+.gen:before {
+ content:counter(ctr) url(support/square-outline-32x32.png) open-quote "Before " attr(class);
+ counter-increment:ctr;
+}
+.gen:after {
+ content:counter(ctr) url(support/square-outline-32x32.png) "After " attr(class) close-quote;
+ counter-increment:ctr;
+}
+
+table { border:1px solid blue; }
+td { border:1px solid cyan; }
+td { border-spacing:0; padding:0; }
+
+tr.gen:before, tr.gen:after { display:table-cell; }
+tbody.gen:before, tbody.gen:after { display:table-row; }
+table.gen:before, table.gen:after { display:table-row-group; }
+table.col:before, table.gen.col:after { display:table-column-group; }
+/* note reordering here! */
+table.headfoot:after { display:table-header-group; }
+table.headfoot:before { display:table-footer-group; }
+
+.cell { display:table-cell; }
+.row { display:table-row; }
+.rowgroup { display:table-row-group; }
+.table { display:table; }
+div.gencell:before, div.gencell:after { display:table-cell; }
+div.genrow:before, div.genrow:after { display:table-row; }
+div.genblock:before, div.genblock:after { display:block; }
+div.geninline:before, div.geninline:after { display:inline; }
+
+div { border:1px solid green; margin:5px; }
+
+.varyheight:before { height:100px; background:yellow; }
+.varyheight > div { height:80px; background:orange; }
+.varyheight:after { height:60px; background:brown; }
+
+.varywidth:before { background:yellow; }
+.varywidth > div { background:orange; }
+.varywidth:after { background:brown; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.1.scss
new file mode 100644
index 0000000000..652b7fb64f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-parts-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-table-parts-001.htm */
+.style { border:none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/before-after-table-whitespace-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-whitespace-001.0.scss
new file mode 100644
index 0000000000..a4bd9b3f27
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/before-after-table-whitespace-001.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/before-after-table-whitespace-001.htm */
+
+.gen0:before {
+ padding:1px;
+}
+.gen1:before {
+ content: " ";
+}
+.gen2:before {
+ content: attr(missing);
+}
+.gen3:before {
+ content: url(missing-image.png);
+}
+
+div { border:1px solid green; margin:5px; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-001.0.scss
new file mode 100644
index 0000000000..f2d73053d4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-001.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-append-001.htm */
+
+
+ body > span { outline: 1px dotted black; }
+ body > span > span { display: block; width: 10em; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.0.scss
new file mode 100644
index 0000000000..15821f265e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-append-002.htm */
+
+ #outermost { border: 2px solid; }
+ #outer { border: 4px solid yellow; }
+ #inner { border: 6px sold green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.1.scss
new file mode 100644
index 0000000000..92b70020f2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-append-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-append-002.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.0.scss
new file mode 100644
index 0000000000..c59fe1cefd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-001.htm */
+.style { direction: ltr }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.1.scss
new file mode 100644
index 0000000000..24f75e5c03
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-001.htm */
+.style { border: 5px solid blue; border-left: none; border-right: none; padding-right: 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.2.scss
new file mode 100644
index 0000000000..578cdb672b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-001.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.0.scss
new file mode 100644
index 0000000000..ebd82de172
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-002.htm */
+.style { direction: rtl }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.1.scss
new file mode 100644
index 0000000000..800d89067f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-002.htm */
+.style { border: 5px solid blue; border-left: none; border-right: none; padding-right: 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.2.scss
new file mode 100644
index 0000000000..47d968fb36
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-002.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.0.scss
new file mode 100644
index 0000000000..bec0ff7a45
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-003.htm */
+.style { direction: ltr }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.1.scss
new file mode 100644
index 0000000000..d55949134e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-003.htm */
+.style { border: 5px solid blue; border-left: none; border-right: none; padding-left: 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.2.scss
new file mode 100644
index 0000000000..972cbf30eb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-003.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.0.scss
new file mode 100644
index 0000000000..6259effef6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-004.htm */
+.style { direction: rtl }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.1.scss
new file mode 100644
index 0000000000..85f7e37a8c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-004.htm */
+.style { border: 5px solid blue; border-left: none; border-right: none; padding-left: 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.2.scss
new file mode 100644
index 0000000000..e4dfb13524
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-empty-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-empty-004.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.0.scss
new file mode 100644
index 0000000000..081e58affc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-float-between-001.htm */
+.style { position: relative; left: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.1.scss
new file mode 100644
index 0000000000..99babd326f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-float-between-001.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.2.scss
new file mode 100644
index 0000000000..8f5a27f693
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-float-between-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-float-between-001.htm */
+.style { float: left }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001a.0.scss
new file mode 100644
index 0000000000..4482654240
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001a.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001b.0.scss
new file mode 100644
index 0000000000..d0b1193abc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001b.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001c.0.scss
new file mode 100644
index 0000000000..a820d992bc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001c.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001c.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001d.0.scss
new file mode 100644
index 0000000000..dc7c044309
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001d.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001d.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001e.0.scss
new file mode 100644
index 0000000000..4ee59b7c3c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001e.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001e.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001f.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001f.0.scss
new file mode 100644
index 0000000000..544fddaee6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001f.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001f.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001g.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001g.0.scss
new file mode 100644
index 0000000000..5bbfb01512
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001g.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001g.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001h.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001h.0.scss
new file mode 100644
index 0000000000..d03bbf51a7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001h.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001h.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001i.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001i.0.scss
new file mode 100644
index 0000000000..d48cc6477c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001i.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001i.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001j.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001j.0.scss
new file mode 100644
index 0000000000..8662fec547
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001j.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001j.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001k.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001k.0.scss
new file mode 100644
index 0000000000..ed1c00b772
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001k.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001k.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001l.0.scss
new file mode 100644
index 0000000000..7e792b2f0b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-001l.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-001l.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002a.0.scss
new file mode 100644
index 0000000000..76a2977e4f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002a.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002b.0.scss
new file mode 100644
index 0000000000..1c468dc942
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002b.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002c.0.scss
new file mode 100644
index 0000000000..17517332ea
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002c.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002c.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002d.0.scss
new file mode 100644
index 0000000000..697822ae0a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002d.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002d.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002e.0.scss
new file mode 100644
index 0000000000..20d8d46d16
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002e.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002e.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002f.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002f.0.scss
new file mode 100644
index 0000000000..b0680028e7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002f.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002f.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002g.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002g.0.scss
new file mode 100644
index 0000000000..67bc7ebadc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002g.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002g.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002h.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002h.0.scss
new file mode 100644
index 0000000000..5c7c0a767d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002h.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002h.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002i.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002i.0.scss
new file mode 100644
index 0000000000..810b088676
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-002i.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-002i.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-003.0.scss
new file mode 100644
index 0000000000..71760d321c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-003.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-003.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-004.0.scss
new file mode 100644
index 0000000000..7d18b5f0bb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-004.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-004.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-006.0.scss
new file mode 100644
index 0000000000..5fae99411f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-006.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-006.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-007.0.scss
new file mode 100644
index 0000000000..3e59471379
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-007.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-007.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008a.0.scss
new file mode 100644
index 0000000000..840e4c41ac
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-008a.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008b.0.scss
new file mode 100644
index 0000000000..b1e3f46489
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-008b.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008c.0.scss
new file mode 100644
index 0000000000..9ccc845aa6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-008c.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-008c.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-009.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-009.0.scss
new file mode 100644
index 0000000000..134414535f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-009.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-009.htm */
+
+ body > span { border: 3px solid blue }
+ body > span > span { border: 3px solid cyan }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-010.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-010.0.scss
new file mode 100644
index 0000000000..62431c82a3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-010.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-010.htm */
+
+ body > span { border: 3px solid blue }
+ body > span > span { border: 3px solid cyan }
+ body > span > span:after { content: "Ten" }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-011.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-011.0.scss
new file mode 100644
index 0000000000..2844241d70
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-011.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-011.htm */
+
+ body > span { border: 3px solid blue }
+ body > span > span { border: 3px solid cyan }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-012.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-012.0.scss
new file mode 100644
index 0000000000..105753b69f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-012.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-012.htm */
+
+ #i { display: inline; border: 2px solid; }
+ #i:after { display: block; content: "Three"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.0.scss
new file mode 100644
index 0000000000..dd0da56c7d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-013.htm */
+
+ #i { border: 2px solid; }
+ #i:before { display: block; content: "One"; }
+ #i:after { content: "Three"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.1.scss
new file mode 100644
index 0000000000..fce9f7e44a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-013.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-013.htm */
+.style { display: none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.0.scss
new file mode 100644
index 0000000000..0d1f7f3a3e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-014.htm */
+
+ #i { border: 2px solid; }
+ #i:before { display: block; content: "One"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.1.scss
new file mode 100644
index 0000000000..4fb8ca38ec
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-014.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-014.htm */
+.style { display: none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-015.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-015.0.scss
new file mode 100644
index 0000000000..064cb0734c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-015.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-015.htm */
+
+ #i { display: inline; border: 2px solid; }
+ #i:after { display: block; content: "Three"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.0.scss
new file mode 100644
index 0000000000..27a0dd79bd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-016a.htm */
+
+ #i { border: 2px solid; }
+ #i:after { display: block; content: "Two"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.1.scss
new file mode 100644
index 0000000000..e2ddc868f4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016a.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-016a.htm */
+.style { display: none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016b.0.scss
new file mode 100644
index 0000000000..7b53f1212b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-016b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-016b.htm */
+
+ #i { border: 2px solid; }
+ #i:after { display: block; content: "Two"; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.0.scss
new file mode 100644
index 0000000000..fb90ff7fde
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-017.htm */
+.style { width: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.1.scss
new file mode 100644
index 0000000000..7efbd77d83
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-017.htm */
+.style { border: 2px solid blue; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.2.scss
new file mode 100644
index 0000000000..95aac0261c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-insert-017.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-insert-017.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.0.scss
new file mode 100644
index 0000000000..d683f3fa54
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-001a.htm */
+.style { direction: ltr; width: 100px; border: 1px solid green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.1.scss
new file mode 100644
index 0000000000..aae6310bf0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001a.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-001a.htm */
+.style { display: block; height: 20px; width: 80px; margin: 10px; border: 5px solid black }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.0.scss
new file mode 100644
index 0000000000..4a040231ea
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-001b.htm */
+.style { direction: ltr; width: 100px; border: 1px solid green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.1.scss
new file mode 100644
index 0000000000..5f99cd4c5c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-001b.htm */
+.style { direction: rtl }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.2.scss
new file mode 100644
index 0000000000..bede015e4e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-001b.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-001b.htm */
+.style { display: block; height: 20px; width: 80px; margin: 10px; border: 5px solid black }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.0.scss
new file mode 100644
index 0000000000..7c7cbd0808
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-002a.htm */
+.style { direction: rtl; width: 100px; border: 1px solid green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.1.scss
new file mode 100644
index 0000000000..305b8ac11a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002a.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-002a.htm */
+.style { display: block; height: 20px; width: 80px; margin: 10px; border: 5px solid black }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.0.scss
new file mode 100644
index 0000000000..7b8252e044
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-002b.htm */
+.style { direction: rtl; width: 100px; border: 1px solid green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.1.scss
new file mode 100644
index 0000000000..11e90f792e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-002b.htm */
+.style { direction: ltr }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.2.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.2.scss
new file mode 100644
index 0000000000..3416f8de01
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-margins-002b.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-margins-002b.htm */
+.style { display: block; height: 20px; width: 80px; margin: 10px; border: 5px solid black }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-001.0.scss
new file mode 100644
index 0000000000..e78538e895
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-nested-001.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.0.scss
new file mode 100644
index 0000000000..9367c041d0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-nested-002.htm */
+.style { border: 5px solid blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.1.scss
new file mode 100644
index 0000000000..fee6eb9e60
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-nested-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-nested-002.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.0.scss
new file mode 100644
index 0000000000..efb841d5dc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-percents-001.htm */
+.style { height: 200px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.1.scss
new file mode 100644
index 0000000000..57e6d10c49
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-percents-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-percents-001.htm */
+.style { display: block; height: 50%; border: 10px solid black }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-001.0.scss
new file mode 100644
index 0000000000..ebe1d5373b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-001.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-002.0.scss
new file mode 100644
index 0000000000..ca9c6e7a45
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-002.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-002.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-003.0.scss
new file mode 100644
index 0000000000..dc223e8297
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-003.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-003.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-004.0.scss
new file mode 100644
index 0000000000..ed1891d7f0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-004.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-004.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-005.0.scss
new file mode 100644
index 0000000000..c3f1c4fcc0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-005.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-005.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-006.0.scss
new file mode 100644
index 0000000000..2f4d5643be
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-remove-006.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-remove-006.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001a.0.scss
new file mode 100644
index 0000000000..a0fdf69e23
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-whitespace-001a.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001b.0.scss
new file mode 100644
index 0000000000..4c860c2a7e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/block-in-inline-whitespace-001b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/block-in-inline-whitespace-001b.htm */
+
+ body > span { border: 3px solid blue }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.0.scss
new file mode 100644
index 0000000000..898d753e68
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-001.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.1.scss
new file mode 100644
index 0000000000..7a2f6b66db
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-001.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.2.scss
new file mode 100644
index 0000000000..bfd8fdb6e5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-001.htm */
+.style { border-style:none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.0.scss
new file mode 100644
index 0000000000..e0dbae8b77
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.1.scss
new file mode 100644
index 0000000000..a5f32321c6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-002.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.2.scss
new file mode 100644
index 0000000000..49b52904b4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-002.htm */
+.style { border-width:11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.0.scss
new file mode 100644
index 0000000000..8b018c1980
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-003.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.1.scss
new file mode 100644
index 0000000000..c4dc834384
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-003.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.0.scss
new file mode 100644
index 0000000000..1f0a0f3c56
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-004.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.1.scss
new file mode 100644
index 0000000000..14810d15b6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-004.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.2.scss
new file mode 100644
index 0000000000..15f89578e1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-004.htm */
+.style { border-style:none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.0.scss
new file mode 100644
index 0000000000..5117efb468
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-005.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.1.scss
new file mode 100644
index 0000000000..2e248a0aaa
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-005.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.2.scss
new file mode 100644
index 0000000000..15ba20a79f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-cell-005.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-cell-005.htm */
+.style { border-style:none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.0.scss
new file mode 100644
index 0000000000..d6af94204f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-001.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.1.scss
new file mode 100644
index 0000000000..1d942d6b38
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-001.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.2.scss
new file mode 100644
index 0000000000..27a43b6bd8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-001.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.0.scss
new file mode 100644
index 0000000000..ae15dde154
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.1.scss
new file mode 100644
index 0000000000..8ee152dc38
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-002.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.2.scss
new file mode 100644
index 0000000000..c6318a3584
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-002.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.0.scss
new file mode 100644
index 0000000000..0d7f407a9d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-003.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.1.scss
new file mode 100644
index 0000000000..e58b8bb8df
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-003.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.2.scss
new file mode 100644
index 0000000000..cadad9538f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-colgroup-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-colgroup-003.htm */
+.style { border:outset green 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.0.scss
new file mode 100644
index 0000000000..ba42b5052f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-001.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.1.scss
new file mode 100644
index 0000000000..262d6bbedd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-001.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.2.scss
new file mode 100644
index 0000000000..d32773435c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-001.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.0.scss
new file mode 100644
index 0000000000..4ca986a899
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.1.scss
new file mode 100644
index 0000000000..caf207660d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-002.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.2.scss
new file mode 100644
index 0000000000..f7228f354e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-002.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.0.scss
new file mode 100644
index 0000000000..d5b7eae31a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-003.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.1.scss
new file mode 100644
index 0000000000..4b42a2998c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-003.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.2.scss
new file mode 100644
index 0000000000..a967891706
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-column-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-column-003.htm */
+.style { border:outset green 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.0.scss
new file mode 100644
index 0000000000..070b886636
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-001.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.1.scss
new file mode 100644
index 0000000000..0aec943a6c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-001.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.2.scss
new file mode 100644
index 0000000000..1c23b85d86
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-001.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.0.scss
new file mode 100644
index 0000000000..7bfdeac373
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.1.scss
new file mode 100644
index 0000000000..f50de68330
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-002.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.2.scss
new file mode 100644
index 0000000000..62bb238c7a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-002.htm */
+.style { border:solid green 2px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.0.scss
new file mode 100644
index 0000000000..a18235986c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-003.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.1.scss
new file mode 100644
index 0000000000..16f289c84f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-003.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.2.scss
new file mode 100644
index 0000000000..0cef689399
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-row-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-row-003.htm */
+.style { border:outset green 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.0.scss
new file mode 100644
index 0000000000..aa87c0c1d3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-001.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.1.scss
new file mode 100644
index 0000000000..9d26fe3df3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-001.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.2.scss
new file mode 100644
index 0000000000..7195bcef72
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-001.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.0.scss
new file mode 100644
index 0000000000..be951ef050
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.1.scss
new file mode 100644
index 0000000000..8fde9220db
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-002.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.2.scss
new file mode 100644
index 0000000000..86f188e449
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-002.htm */
+.style { border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.0.scss
new file mode 100644
index 0000000000..7a94d7c74b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-003.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.1.scss
new file mode 100644
index 0000000000..2c43199f38
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-003.htm */
+.style { border-collapse:collapse }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.2.scss
new file mode 100644
index 0000000000..08d7e668d6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-rowgroup-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-rowgroup-003.htm */
+.style { border:outset green 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.0.scss
new file mode 100644
index 0000000000..98f04c7a57
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-001.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.1.scss
new file mode 100644
index 0000000000..7a7cf28388
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-001.htm */
+.style { border-collapse:collapse; border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.0.scss
new file mode 100644
index 0000000000..d5453532b4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-002.htm */
+
+td { border: 10px green solid;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.1.scss
new file mode 100644
index 0000000000..da3a1b0a1b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-002.htm */
+.style { border-collapse:collapse; border:solid green 11px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.0.scss
new file mode 100644
index 0000000000..aff4d99c71
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-003.htm */
+
+td { border: 10px green outset;}
+table {margin: 30px}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.1.scss
new file mode 100644
index 0000000000..fd48bad69d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-dynamic-table-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-dynamic-table-003.htm */
+.style { border-collapse:collapse; border:none green 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.0.scss
new file mode 100644
index 0000000000..10da13d64d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-001.htm */
+
+td {width: 100px; text-align:center}
+div {position:absolute; border:green 4px solid}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.1.scss
new file mode 100644
index 0000000000..c87fcbc76a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-001.htm */
+.style { border-collapse:collapse; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.2.scss
new file mode 100644
index 0000000000..340f309e2e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-001.htm */
+.style { border:solid 4px orange; height:30px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.0.scss
new file mode 100644
index 0000000000..d33ffa4284
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-002.htm */
+
+td {width: 100px; text-align:center}
+caption {border:solid 4px green}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.1.scss
new file mode 100644
index 0000000000..88535218ab
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-002.htm */
+.style { border-collapse:collapse; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.2.scss
new file mode 100644
index 0000000000..ee3eb8c007
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/border-collapse-offset-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/border-collapse-offset-002.htm */
+.style { border:solid 4px orange; height:30px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.0.scss
new file mode 100644
index 0000000000..b09d86f8f7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/charset-attr-001.htm */
+
+ body { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.1.scss
new file mode 100644
index 0000000000..bfaba9dc01
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/charset-attr-001.1.scss
Binary files differ
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-1.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-1.0.scss
new file mode 100644
index 0000000000..f0a8248396
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-1.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-1.html */
+li,p { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-10.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-10.0.scss
new file mode 100644
index 0000000000..d0d1a14d60
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-10.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-10.html */
+p { background-color : red }
+p[title$="bar"] { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-11.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-11.0.scss
new file mode 100644
index 0000000000..ca558792b0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-11.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-11.html */
+p { background-color : red }
+p[title*="bar"] { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-13.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-13.0.scss
new file mode 100644
index 0000000000..344a9e8e46
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-13.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-13.html */
+li { background-color : red }
+.t1 { background-color : lime }
+li.t2 { background-color : lime }
+.t3 { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14.0.scss
new file mode 100644
index 0000000000..faf4d3c7cb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14.0.scss
@@ -0,0 +1,10 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-14.html */
+p { background-color : red ; border : thick solid red ; padding : 1em }
+p.t1 { background-color : lime }
+p.t2 { border : thick solid green }
+
+div { background: green; color: white; }
+div.teST { background: red; color: yellow; }
+div.te { background: red; color: yellow; }
+div.st { background: red; color: yellow; }
+div.te.st { background: red; color: yellow; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-144.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-144.0.scss
new file mode 100644
index 0000000000..c669785ac7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-144.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-144.html */
+div :not(:enabled):not(:disabled) { background: lime; }
+p { background : red;}
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-148.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-148.0.scss
new file mode 100644
index 0000000000..a41bb1ed85
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-148.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-148.html */
+
+ p { background: lime; }
+ p:empty { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149.0.scss
new file mode 100644
index 0000000000..23eba2f553
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-149.html */
+
+ address:empty { background: lime; }
+ address { background: red; margin: 0; height: 1em; }
+ .text { margin: -1em 0 0 0; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149b.0.scss
new file mode 100644
index 0000000000..ae6c5ca1c7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-149b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-149b.html */
+
+ address:empty { background: lime; }
+ address { background: red; margin: 0; height: 1em; }
+ .text { margin: -1em 0 0 0; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14b.0.scss
new file mode 100644
index 0000000000..5851edc2e3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14b.0.scss
@@ -0,0 +1,10 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-14b.html */
+
+p { background: green; color: white; }
+.t1.fail { background: red; color: yellow; }
+.fail.t1 { background: red; color: yellow; }
+.t2.fail { background: red; color: yellow; }
+.fail.t2 { background: red; color: yellow; }
+/* Note: This is a valid test even per CSS1, since in CSS1 those rules
+ are invalid and should be dropped. */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14c.0.scss
new file mode 100644
index 0000000000..d32fec8496
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14c.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-14c.html */
+
+p { background: red; color: yellow; }
+p.t1.t2 { background: green; color: white; }
+div { background: green; color: white; }
+div.t1 { background: red; color: yellow; }
+address { background: red; color: yellow; }
+address.t5.t5 { background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14d.0.scss
new file mode 100644
index 0000000000..3432db6913
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14d.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-14d.html */
+
+p { background: green; color: white; }
+.t1:not(.t2) { background: red; color: yellow; }
+:not(.t2).t1 { background: red; color: yellow; }
+.t2:not(.t1) { background: red; color: yellow; }
+:not(.t1).t2 { background: red; color: yellow; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14e.0.scss
new file mode 100644
index 0000000000..979edeed91
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-14e.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-14e.html */
+
+p { background: green; color: white; }
+p:not(.t1):not(.t2) { background: red; color: yellow; }
+div { background: red; color: yellow; }
+div:not(.t1) { background: green; color: white; }
+address { background: green; color: white; }
+address:not(.t5):not(.t5) { background: red; color: yellow; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-15.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-15.0.scss
new file mode 100644
index 0000000000..ff1d3a2d9b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-15.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-15.html */
+li { background-color : red }
+#t1 { background-color : lime }
+li#t2 { background-color : lime }
+li#t3 { background-color : lime }
+#t4 { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-150.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-150.0.scss
new file mode 100644
index 0000000000..bb9cc2cb7c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-150.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-150.html */
+
+ address:empty { background: lime; }
+ address { background: red; margin: 0; height: 1em; }
+ .text { margin: -1em 0 0 0; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-151.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-151.0.scss
new file mode 100644
index 0000000000..ec229bdd33
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-151.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-151.html */
+
+ address { background: lime; margin: 0; height: 1em; }
+ address:empty { background: red; }
+ .text { margin: -1em 0 0 0; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-152.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-152.0.scss
new file mode 100644
index 0000000000..bf765f8b5d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-152.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-152.html */
+
+ address { background: lime; margin: 0; height: 1em; }
+ address:empty { background: red; }
+ .text { margin: -1em 0 0 0; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155.0.scss
new file mode 100644
index 0000000000..1f073c35b4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-155.html */
+
+ p { background: lime; }
+ .5cm { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155a.0.scss
new file mode 100644
index 0000000000..9ce3a19428
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-155a.html */
+
+ p { background: lime; }
+ .\5cm { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155b.0.scss
new file mode 100644
index 0000000000..83340f5351
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155b.0.scss
@@ -0,0 +1,10 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-155b.html */
+
+ p { background: lime; }
+ .two\ words { background: red; }
+
+ /* the "." and "~=" forms match on a space separated list of words.
+ In such a list, a word containing a space can never match, since it
+ would by definition be two words. */
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155c.0.scss
new file mode 100644
index 0000000000..516c8de4e0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-155c.html */
+
+ p { background: lime; }
+ .one.word { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155d.0.scss
new file mode 100644
index 0000000000..6930469379
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-155d.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-155d.html */
+
+ .one\.word { background: lime; }
+ p { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156.0.scss
new file mode 100644
index 0000000000..058b6b4290
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-156.html */
+
+ p { background: lime; }
+ foo & address, p { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156b.0.scss
new file mode 100644
index 0000000000..033b8f59a9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-156b.html */
+
+ foo & address, p { background: red; }
+ p { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156c.0.scss
new file mode 100644
index 0000000000..62d2a7ceb6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-156c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-156c.html */
+
+ foo & address, p { background: red ! important; }
+ p { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-159.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-159.0.scss
new file mode 100644
index 0000000000..6f85988756
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-159.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-159.html */
+
+ ::selection { background: lime; }
+ :selection { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-16.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-16.0.scss
new file mode 100644
index 0000000000..7b909a1ac1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-16.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-16.html */
+p.test a { background-color : red }
+p.test *:link { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-160.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-160.0.scss
new file mode 100644
index 0000000000..45c7c74e02
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-160.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-160.html */
+
+ p { background: lime; }
+ p:subject { background: red; } /* this is not valid CSS, and if UAs
+ implemented the experimental :subject pseudo-class they should have
+ used the :-vnd-ident syntax. */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-161.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-161.0.scss
new file mode 100644
index 0000000000..c10cdd2dfd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-161.0.scss
@@ -0,0 +1,26 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-161.html */
+
+ p { background: lime; }
+ p * { background: lime; }
+ p > * { background: lime; }
+ p + * { background: lime; }
+ p ~ * { background: lime; }
+
+ /* let's try some pseudos that are not valid CSS but are likely to
+ be implemented as extensions in some UAs. These should not be
+ recognised, as UAs implementing such extensions should use the
+ :-vnd-ident syntax. */
+
+ :canvas { background: red; }
+ :viewport { background: red; }
+ :window { background: red; }
+ :menu { background: red; }
+ :table { background: red; }
+ :select { background: red; }
+ ::canvas { background: red; }
+ ::viewport { background: red; }
+ ::window { background: red; }
+ ::menu { background: red; }
+ ::table { background: red; }
+ ::select { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166.0.scss
new file mode 100644
index 0000000000..de27d9ffd2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-166.html */
+
+ p:first-letter { background-color: red; }
+ p::first-letter { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166a.0.scss
new file mode 100644
index 0000000000..ed465fe93b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-166a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-166a.html */
+
+ p::first-letter { background-color: red; }
+ p:first-letter { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167.0.scss
new file mode 100644
index 0000000000..5aad6a87bd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-167.html */
+
+ p:first-line { background-color: red; }
+ p::first-line { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167a.0.scss
new file mode 100644
index 0000000000..109defc654
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-167a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-167a.html */
+
+ p::first-line { background-color: red; }
+ p:first-line { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168.0.scss
new file mode 100644
index 0000000000..81f5c1e9b1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-168.html */
+
+ span:before { background-color: red; content: 'FAILED'; }
+ span::before { background-color: lime; content: 'PASSED'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168a.0.scss
new file mode 100644
index 0000000000..0898dd7d8c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-168a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-168a.html */
+
+ span::before { background-color: red; content: 'FAILED'; }
+ span:before { background-color: lime; content: 'PASSED'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169.0.scss
new file mode 100644
index 0000000000..69ddf7fccc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-169.html */
+
+ span:after { background-color: red; content: 'FAILED'; }
+ span::after { background-color: lime; content: 'PASSED'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169a.0.scss
new file mode 100644
index 0000000000..efb74238ec
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-169a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-169a.html */
+
+ span::after { background-color: red; content: 'FAILED'; }
+ span:after { background-color: lime; content: 'PASSED'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-17.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-17.0.scss
new file mode 100644
index 0000000000..2b881ad09d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-17.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-17.html */
+p.test a { background-color : red }
+p.test *:visited { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170.0.scss
new file mode 100644
index 0000000000..e33d2f5b12
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-170.html */
+
+ span { color: red; }
+ span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span, span { color: green } /* 2049 */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170a.0.scss
new file mode 100644
index 0000000000..7d09cee5ee
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-170a.html */
+
+ .span { color: red; }
+ .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span, .span { color: green } /* 2049 */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170b.0.scss
new file mode 100644
index 0000000000..9144c18516
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-170b.html */
+
+ .span { color: red; }
+ .span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span.span { color: green } /* 2049 */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170c.0.scss
new file mode 100644
index 0000000000..adcf326e76
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-170c.html */
+
+ p.span { color: red; }
+ p:not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span):not(.span) { color: green } /* 2049 */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170d.0.scss
new file mode 100644
index 0000000000..1ace26ae1f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-170d.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-170d.html */
+
+ p { color: red; }
+ p:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child:first-child { color: green } /* 2049 */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175a.0.scss
new file mode 100644
index 0000000000..eb61d12ff2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-175a.html */
+
+ p { color: green; }
+ .13 { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175b.0.scss
new file mode 100644
index 0000000000..91066d4671
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-175b.html */
+
+ p { color: green; }
+ .\13 { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175c.0.scss
new file mode 100644
index 0000000000..d7555e9fa0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-175c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-175c.html */
+
+ p { color: red; }
+ .\31 \33 { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-176.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-176.0.scss
new file mode 100644
index 0000000000..474be8d9e8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-176.0.scss
@@ -0,0 +1,11 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-176.html */
+
+p { background: red; color: yellow; }
+p:not(#other).class:not(.fail).test#id#id { background: green; color: white; }
+div { background: green; color: white; }
+div:not(#theid).class:not(.fail).test#theid#theid { background: red; color: yellow; }
+div:not(#other).notclass:not(.fail).test#theid#theid { background: red; color: yellow; }
+div:not(#other).class:not(.test).test#theid#theid { background: red; color: yellow; }
+div:not(#other).class:not(.fail).nottest#theid#theid { background: red; color: yellow; }
+div:not(#other).class:not(.fail).nottest#theid#other { background: red; color: yellow; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177a.0.scss
new file mode 100644
index 0000000000..29359bcba2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-177a.html */
+
+ p:selection { color: yellow; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177b.0.scss
new file mode 100644
index 0000000000..64f2c84901
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-177b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-177b.html */
+
+ div { color: green; }
+ p::first-child { color: yellow; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-178.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-178.0.scss
new file mode 100644
index 0000000000..92b765dff4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-178.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-178.html */
+
+ div { color: green; }
+ p:not(:first-line) { color: yellow; background: red; }
+ p:not(:after) { color: yellow; background: red; content: ' THIS TEST HAS FAILED! '; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179.0.scss
new file mode 100644
index 0000000000..ce5e3a8630
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-179.html */
+
+ p { color: green; }
+ span:first-line { background: red; color: yellow; font-size: 4em; }
+ span::first-line { background: red; color: yellow; font-size: 4em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179a.0.scss
new file mode 100644
index 0000000000..660e7508dc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-179a.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-179a.html */
+
+ p { color: green; }
+ p:first-line { background: red; color: yellow; font-size: 4em; }
+ p::first-line { background: red; color: yellow; font-size: 4em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18.0.scss
new file mode 100644
index 0000000000..33067afba0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-18.html */
+p:hover { background-color : lime }
+a:hover { background-color : lime }
+
+tr:hover { background-color : green }
+td:hover { background-color : lime }
+
+table { border-spacing: 5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-180a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-180a.0.scss
new file mode 100644
index 0000000000..a7a641bcb6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-180a.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-180a.html */
+
+ p { color: green; }
+ p:first-letter { background: red; color: yellow; font-size: 4em; }
+ p::first-letter { background: red; color: yellow; font-size: 4em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-181.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-181.0.scss
new file mode 100644
index 0000000000..24dbd1031d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-181.0.scss
@@ -0,0 +1,15 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-181.html */
+
+ .cs { color: green; }
+ .cs P { background: red; color: yellow; }
+ .cs .a { background: red; color: yellow; }
+ .cs .span1 span { background: red; color: yellow; }
+ .cs .span2 { color: red; }
+ .cs .span2 SPAN { color: green; }
+ .cs .span2 span { background: red; color: yellow; }
+ .ci { color: red; }
+ .ci P { background: green; color: white; }
+ .ci .a { background: green; color: white; }
+ .ci .span1 span { background: green; color: white; }
+ .ci .span2 SPAN { background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184a.0.scss
new file mode 100644
index 0000000000..7d5c5fd2d4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184a.html */
+
+p { color: lime; }
+p[class$=""] { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184b.0.scss
new file mode 100644
index 0000000000..f0e5f98b15
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184b.html */
+
+p { color: lime; }
+p[class^=""] { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184c.0.scss
new file mode 100644
index 0000000000..892f85f7f3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184c.html */
+
+p { color: lime; }
+p[class*=""] { color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184d.0.scss
new file mode 100644
index 0000000000..ad721d0131
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184d.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184d.html */
+
+p { color: red; }
+p:not([class$=""]) { color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184e.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184e.0.scss
new file mode 100644
index 0000000000..b1ae45984c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184e.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184e.html */
+
+p { color: red; }
+p:not([class^=""]) { color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184f.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184f.0.scss
new file mode 100644
index 0000000000..8d461ff6d6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-184f.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-184f.html */
+
+p { color: red; }
+p:not([class*=""]) { color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18a.0.scss
new file mode 100644
index 0000000000..ccd04a2cef
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18a.0.scss
@@ -0,0 +1,12 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-18a.html */
+
+p { color: navy; }
+
+.a a:hover { background: green; color: white; }
+
+.b a:hover { background: red; color: yellow; }
+.b a:link { background: green; color: white; }
+
+.c :link { background: green; color: white; }
+.c :visited:hover { background: red; color: yellow; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18b.0.scss
new file mode 100644
index 0000000000..87405f66f8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-18b.html */
+div:hover > p:first-child { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18c.0.scss
new file mode 100644
index 0000000000..519cbce0ee
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-18c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-18c.html */
+
+:link, :visited { color: navy; text-decoration: none; }
+:link:hover span { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19.0.scss
new file mode 100644
index 0000000000..8b13ef8766
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-19.html */
+a:active { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19b.0.scss
new file mode 100644
index 0000000000..c5ddec6c1d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-19b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-19b.html */
+button:active { background: green; color: white; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-2.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-2.0.scss
new file mode 100644
index 0000000000..ae64542b1c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-2.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-2.html */
+address { background-color: lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-20.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-20.0.scss
new file mode 100644
index 0000000000..5a2ef60ca9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-20.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-20.html */
+a:focus { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21.0.scss
new file mode 100644
index 0000000000..c391cb4d6f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-21.html */
+p:target { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21b.0.scss
new file mode 100644
index 0000000000..ef7b904578
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-21b.html */
+p { background-color: lime; }
+p:target { background-color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21c.0.scss
new file mode 100644
index 0000000000..842e11db74
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-21c.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-21c.html */
+:root { background-color: green; }
+:target { background-color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-22.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-22.0.scss
new file mode 100644
index 0000000000..62a0370b78
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-22.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-22.html */
+ul > li { background-color : red }
+li:lang(en-GB) { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-23.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-23.0.scss
new file mode 100644
index 0000000000..4415be07a9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-23.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-23.html */
+button { background-color : red }
+input { background-color : red }
+button:enabled { background-color : lime }
+input:enabled { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-24.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-24.0.scss
new file mode 100644
index 0000000000..40f518adc3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-24.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-24.html */
+button { background-color : red }
+input { background-color : red }
+button:disabled { background-color : lime }
+input:disabled { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-25.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-25.0.scss
new file mode 100644
index 0000000000..a9d194c71e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-25.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-25.html */
+input, span { background-color : red }
+input:checked, input:checked + span { background-color : lime}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27.0.scss
new file mode 100644
index 0000000000..6451254f09
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-27.html */
+html { background-color : red }
+*:root { background-color: lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27a.0.scss
new file mode 100644
index 0000000000..4482386911
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27a.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-27a.html */
+
+:root:first-child { background-color: red; }
+:root:last-child { background-color: red; }
+:root:only-child { background-color: red; }
+:root:nth-child(1) { background-color: red; }
+:root:nth-child(n) { background-color: red; }
+:root:nth-last-child(1) { background-color: red; }
+:root:nth-last-child(n) { background-color: red; }
+:root:first-of-type { background-color: red; }
+:root:last-of-type { background-color: red; }
+:root:only-of-type { background-color: red; }
+:root:nth-of-type(1) { background-color: red; }
+:root:nth-of-type(n) { background-color: red; }
+:root:nth-last-of-type(1) { background-color: red; }
+:root:nth-last-of-type(n) { background-color: red; }
+p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27b.0.scss
new file mode 100644
index 0000000000..a21c7dbf6d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-27b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-27b.html */
+* html { background-color: red; }
+* :root { background-color: red; }
+p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28.0.scss
new file mode 100644
index 0000000000..3546bfc898
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-28.html */
+.red { background-color : red }
+ul > li:nth-child(odd) { background-color : lime }
+ol > li:nth-child(even) { background-color : lime }
+table.t1 tr:nth-child(-n+4) { background-color : lime }
+table.t2 td:nth-child(3n+1) { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28b.0.scss
new file mode 100644
index 0000000000..a91ad30283
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-28b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-28b.html */
+.green { background-color : lime ! important }
+ul > li:nth-child(odd) { background-color : red }
+ol > li:nth-child(even) { background-color : red }
+table.t1 tr:nth-child(-n+4) { background-color : red }
+table.t2 td:nth-child(3n+1) { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29.0.scss
new file mode 100644
index 0000000000..0860aa4956
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-29.html */
+.red { background-color : red }
+ul > li:nth-last-child(odd) { background-color : green }
+ol > li:nth-last-child(even) { background-color : green }
+table.t1 tr:nth-last-child(-n+4) { background-color : green }
+table.t2 td:nth-last-child(3n+1) { background-color : green }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29b.0.scss
new file mode 100644
index 0000000000..eb55cc8de4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-29b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-29b.html */
+.green { background-color : lime ! important }
+ul > li:nth-last-child(odd) { background-color : red }
+ol > li:nth-last-child(even) { background-color : red }
+table.t1 tr:nth-last-child(-n+4) { background-color : red }
+table.t2 td:nth-last-child(3n+1) { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-30.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-30.0.scss
new file mode 100644
index 0000000000..46d21fae2a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-30.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-30.html */
+.red { background-color : red }
+p:nth-of-type(3) { background-color : lime }
+dl > :nth-of-type(3n+1) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-31.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-31.0.scss
new file mode 100644
index 0000000000..de45ba5eb1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-31.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-31.html */
+.red { background-color : red }
+p:nth-last-of-type(3) { background-color : lime }
+dl > :nth-last-of-type(3n+1) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-32.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-32.0.scss
new file mode 100644
index 0000000000..5fbf5c2b5e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-32.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-32.html */
+.red { background-color : red }
+.t1 td:first-child { background-color : lime }
+p > *:first-child { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-33.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-33.0.scss
new file mode 100644
index 0000000000..507ac1b3cb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-33.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-33.html */
+.red { background-color : red }
+.t1 td:last-child { background-color : lime }
+p > *:last-child { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-34.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-34.0.scss
new file mode 100644
index 0000000000..697d635940
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-34.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-34.html */
+.red { background-color : red }
+address { margin-bottom : 1em ; margin-left : 1em }
+address:first-of-type { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-35.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-35.0.scss
new file mode 100644
index 0000000000..0fee4326d0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-35.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-35.html */
+.red { background-color : red }
+address { margin-bottom : 1em ; margin-left : 1em }
+address:last-of-type { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-36.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-36.0.scss
new file mode 100644
index 0000000000..5190600df7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-36.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-36.html */
+.red { background-color : red }
+p:only-child { background-color : lime }
+div.testText > div > p { margin-left : 1em }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-37.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-37.0.scss
new file mode 100644
index 0000000000..37d2a23b4c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-37.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-37.html */
+.red { background-color : red }
+.t1 :only-of-type { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-38.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-38.0.scss
new file mode 100644
index 0000000000..9a039639b1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-38.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-38.html */
+p:first-line { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39.0.scss
new file mode 100644
index 0000000000..5243f7505a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-39.html */
+p:first-letter { font-size : xx-large ; background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39a.0.scss
new file mode 100644
index 0000000000..af6c66bd8a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39a.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-39a.html */
+p:first-letter { color: lime; font-size: xx-large; }
+p:before { color: red; content: 'T'; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39b.0.scss
new file mode 100644
index 0000000000..38ff4ba000
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39b.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-39b.html */
+p::first-letter { font-size : xx-large ; background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39c.0.scss
new file mode 100644
index 0000000000..f49d085ddb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-39c.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-39c.html */
+p::first-letter { color: lime; font-size: xx-large; }
+ p::before { color: red; content: 'T'; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-3a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-3a.0.scss
new file mode 100644
index 0000000000..a53bb65f46
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-3a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-3a.html */
+* { color : lime }
+ul, p { color : red }
+*.t1 { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-4.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-4.0.scss
new file mode 100644
index 0000000000..232286f470
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-4.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-4.html */
+#foo { background-color : lime }
+p { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41.0.scss
new file mode 100644
index 0000000000..12049ebc09
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-41.html */
+p::before { background-color : lime ; content : "GENERATED CONTENT "}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41a.0.scss
new file mode 100644
index 0000000000..9092fb307f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-41a.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-41a.html */
+p:before { background-color : lime ; content : "GENERATED CONTENT "}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42.0.scss
new file mode 100644
index 0000000000..2c7b3c5930
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-42.html */
+p::after { background-color : lime ; content : "GENERATED CONTENT "}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42a.0.scss
new file mode 100644
index 0000000000..319f9620b6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-42a.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-42a.html */
+p:after { background-color : lime ; content : "GENERATED CONTENT "}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43.0.scss
new file mode 100644
index 0000000000..6bac1431f1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-43.html */
+.white { background-color: transparent ! important; }
+.red { background-color: red; }
+div.t1 p { background-color: lime; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43b.0.scss
new file mode 100644
index 0000000000..57d2e390f0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-43b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-43b.html */
+.white { background-color: transparent ! important; }
+.green { background-color: lime; }
+div.t1 p { background-color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44.0.scss
new file mode 100644
index 0000000000..909bbca20e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-44.html */
+.white { background-color: transparent ! important; }
+.red { background-color: red; }
+div > p.test { background-color: lime; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44b.0.scss
new file mode 100644
index 0000000000..b26c14087f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-44b.html */
+.white { background-color: transparent ! important; }
+.green { background-color: lime; }
+div > p.test { background-color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44c.0.scss
new file mode 100644
index 0000000000..9279385479
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-44c.html */
+
+ .fail > div { background: red; color: yellow; }
+ .control { background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44d.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44d.0.scss
new file mode 100644
index 0000000000..a8ed5ed793
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-44d.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-44d.html */
+
+ #fail > div { background: red; }
+ p { background: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45.0.scss
new file mode 100644
index 0000000000..3de4e06318
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-45.html */
+.red { background-color : red }
+div.stub > p + p { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45b.0.scss
new file mode 100644
index 0000000000..02ddbde845
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-45b.html */
+.green { background-color: lime; }
+.white { background-color: transparent ! important; }
+div.stub > p + p { background-color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45c.0.scss
new file mode 100644
index 0000000000..6ed552f04e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-45c.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-45c.html */
+
+ .fail + div { background: red; }
+ .control { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46.0.scss
new file mode 100644
index 0000000000..be3866cefe
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-46.html */
+.red { background-color : red }
+div.stub > p ~ p { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46b.0.scss
new file mode 100644
index 0000000000..4de9c09290
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-46b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-46b.html */
+.green { background-color : lime ! important }
+div.stub > p ~ p { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-5.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-5.0.scss
new file mode 100644
index 0000000000..acf0689798
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-5.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-5.html */
+p { background-color : red }
+p[title] { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-54.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-54.0.scss
new file mode 100644
index 0000000000..4be84ca7f0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-54.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-54.html */
+div.stub > * { color : red }
+div.stub *:not([title^="si on"]) { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-55.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-55.0.scss
new file mode 100644
index 0000000000..eb3a0e6341
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-55.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-55.html */
+div.stub > * { color : red }
+div.stub *:not([title$="tait"]) { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-56.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-56.0.scss
new file mode 100644
index 0000000000..e9a01bdad8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-56.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-56.html */
+div.stub > * { color : red }
+div.stub *:not([title*=" on"]) { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-59.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-59.0.scss
new file mode 100644
index 0000000000..8c8d5d061c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-59.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-59.html */
+div.stub > * { color : red }
+div.stub *:not(.foo) { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-6.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-6.0.scss
new file mode 100644
index 0000000000..514e4c3a8c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-6.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-6.html */
+address { background-color : red }
+address[title="foo"] { background-color : lime }
+span[title="a"] { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-60.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-60.0.scss
new file mode 100644
index 0000000000..726b9f378b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-60.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-60.html */
+div.stub > * { color : red }
+div.stub *:not(#foo) { color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-61.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-61.0.scss
new file mode 100644
index 0000000000..2b346351b6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-61.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-61.html */
+div.stub > * { background-color : red }
+div.stub *:not(:link) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-62.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-62.0.scss
new file mode 100644
index 0000000000..4181d2eec7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-62.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-62.html */
+div.stub > * { background-color : red }
+div.stub *:not(:visited) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-63.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-63.0.scss
new file mode 100644
index 0000000000..24d4e99c5d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-63.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-63.html */
+div.stub * { color: lime; text-decoration: none; }
+div.stub > * > *:not(:hover) { color: black }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-64.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-64.0.scss
new file mode 100644
index 0000000000..480b30d221
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-64.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-64.html */
+div.stub * { color : lime }
+div.stub > * > *:not(:active) { color : black }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-65.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-65.0.scss
new file mode 100644
index 0000000000..30615dc8ef
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-65.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-65.html */
+a:not(:focus) { background-color: transparent; }
+a { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66.0.scss
new file mode 100644
index 0000000000..6532029b34
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-66.html */
+p { background-color: navy; color: white; }
+p:not(:target) { background-color: white; color: black; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66b.0.scss
new file mode 100644
index 0000000000..6323784598
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-66b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-66b.html */
+p { background-color: red; }
+p:not(:target) { background-color: lime; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-68.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-68.0.scss
new file mode 100644
index 0000000000..b6f16cb7a8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-68.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-68.html */
+button { background-color : red }
+input { background-color : red }
+button:not(:enabled) { background-color : lime }
+input:not(:enabled) { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-69.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-69.0.scss
new file mode 100644
index 0000000000..9f407b8406
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-69.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-69.html */
+button { background-color : red }
+input { background-color : red }
+button:not(:disabled) { background-color : lime }
+input:not(:disabled) { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7.0.scss
new file mode 100644
index 0000000000..8f1a711e3e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-7.html */
+p { background-color : red }
+p[class~="b"] { background-color : lime }
+address { background-color : red }
+address[title~="foo"] { background-color : lime }
+span[class~="b"] { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-70.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-70.0.scss
new file mode 100644
index 0000000000..23ec933cc2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-70.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-70.html */
+input, span { background-color : red }
+input:not(:checked), input:not(:checked) + span { background-color : lime}
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72.0.scss
new file mode 100644
index 0000000000..ee7aae040e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-72.html */
+p:not(:root) { background-color: lime; }
+div * { background-color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72b.0.scss
new file mode 100644
index 0000000000..2e52ad5595
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-72b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-72b.html */
+html:not(:root), test:not(:root) { background-color: red; }
+p { background-color: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77.0.scss
new file mode 100644
index 0000000000..43036386f6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-77.html */
+.red { background-color : red }
+.t1 td:not(:first-child) { background-color : lime }
+p > *:not(:first-child) { background-color : lime }
+table.t1 td { border : thin black solid }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77b.0.scss
new file mode 100644
index 0000000000..fd95f40ed5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-77b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-77b.html */
+.green { background-color : lime ! important }
+.t1 td:not(:first-child) { background-color : red }
+p > *:not(:first-child) { background-color : red }
+table.t1 td { border : thin black solid }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78.0.scss
new file mode 100644
index 0000000000..4d99f1ceca
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-78.html */
+.red { background-color : red }
+.t1 td:not(:last-child) { background-color : lime }
+p > *:not(:last-child) { background-color : lime }
+table.t1 td { border : thin black solid }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78b.0.scss
new file mode 100644
index 0000000000..8e3c173b9c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-78b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-78b.html */
+.green { background-color : lime ! important }
+.t1 td:not(:last-child) { background-color : red }
+p > *:not(:last-child) { background-color : red }
+table.t1 td { border : thin black solid }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-79.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-79.0.scss
new file mode 100644
index 0000000000..1d1ff21830
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-79.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-79.html */
+.red { background-color : red }
+address { margin-bottom : 1em ; margin-left : 1em }
+address:not(:first-of-type) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7b.0.scss
new file mode 100644
index 0000000000..8043e647d2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-7b.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-7b.html */
+
+p { background: lime; }
+[title~="hello world"] { background: red; }
+/* Section 6.3.1: Represents the att attribute whose value is a
+space-separated list of words, one of which is exactly "val". If this
+selector is used, the words in the value must not contain spaces
+(since they are separated by spaces). */
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-8.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-8.0.scss
new file mode 100644
index 0000000000..8afa5ca99d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-8.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-8.html */
+p { background-color : red }
+p[lang|="en"] { background-color : lime }
+address { background-color : red }
+address[lang="fi"] { background-color : lime }
+span[lang|="fr"] { background-color : red }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-80.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-80.0.scss
new file mode 100644
index 0000000000..697846a18f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-80.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-80.html */
+.red { background-color : red }
+address { margin-bottom : 1em ; margin-left : 1em }
+address:not(:last-of-type) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81.0.scss
new file mode 100644
index 0000000000..7b6f700901
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-81.html */
+.red { background-color : red }
+p:not(:only-child) { background-color : lime }
+div.testText > div > p { margin-left : 1em }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81b.0.scss
new file mode 100644
index 0000000000..af6a6cb054
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-81b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-81b.html */
+.green { background-color : lime ! important }
+p:not(:only-child) { background-color : lime }
+div.testText > div > p { margin-left : 1em }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82.0.scss
new file mode 100644
index 0000000000..5869d3161a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-82.html */
+.red { background-color : red }
+.t1 *:not(:only-of-type) { background-color : lime }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82b.0.scss
new file mode 100644
index 0000000000..c9e4c2cc94
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-82b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-82b.html */
+.green { background-color : lime ! important }
+.t1 *:not(:only-of-type) { background-color : red }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-86.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-86.0.scss
new file mode 100644
index 0000000000..7022b8c830
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-86.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-86.html */
+p { color: red; }
+blockquote > div p { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87.0.scss
new file mode 100644
index 0000000000..275d4274ca
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-87.html */
+p { color: red; }
+blockquote + div ~ p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87b.0.scss
new file mode 100644
index 0000000000..1776b027f7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-87b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-87b.html */
+p { color: green ! important; }
+blockquote + div ~ p { color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88.0.scss
new file mode 100644
index 0000000000..57814ed7c0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-88.html */
+p { color: red; }
+blockquote + div p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88b.0.scss
new file mode 100644
index 0000000000..2d0e34e3c8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-88b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-88b.html */
+p { color: green ! important; }
+blockquote + div p { color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-89.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-89.0.scss
new file mode 100644
index 0000000000..d6c797e143
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-89.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-89.html */
+p { color: red; }
+blockquote div > p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-9.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-9.0.scss
new file mode 100644
index 0000000000..cba3eded20
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-9.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-9.html */
+p { background-color : red }
+p[title^="foo"] { background-color : lime }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90.0.scss
new file mode 100644
index 0000000000..32175261e4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-90.html */
+p { color: red; }
+blockquote ~ div + p { color: green; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90b.0.scss
new file mode 100644
index 0000000000..afcdbafe4d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-90b.0.scss
@@ -0,0 +1,3 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-90b.html */
+p { color: green ! important; }
+blockquote ~ div + p { color: red; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1.0.scss
new file mode 100644
index 0000000000..b669874e11
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-d1.html */
+
+ #test { background: red; display: block; padding: 1em; }
+ #test:not(:empty) { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1b.0.scss
new file mode 100644
index 0000000000..0ac92bcd18
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d1b.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-d1b.html */
+
+ #test1 { background: red; display: block; padding: 1em; margin: 1em; }
+ #test1:empty { background: lime; }
+ #test2 { background: lime; display: block; padding: 1em; margin: 1em; }
+ #test2:empty { background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d2.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d2.0.scss
new file mode 100644
index 0000000000..c3f0544bb5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d2.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-d2.html */
+
+ #test { background: red; display: block; padding: 1em; }
+ #stub ~ div div + div > div { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d4.0.scss b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d4.0.scss
new file mode 100644
index 0000000000..dbf2bdda74
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/css3-modsel-d4.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-d4.html */
+
+ #two:first-child { background: red; }
+ #three:last-child { background: lime; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-001.0.scss
new file mode 100644
index 0000000000..7e94325735
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-001.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-001.0.scss
new file mode 100644
index 0000000000..3e68199d28
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-dynamic-001.htm */
+
+ span:before { content: open-quote; }
+ span:after { content: close-quote; }
+ span { quotes: '"' '"'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003a.0.scss
new file mode 100644
index 0000000000..30c5445777
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003a.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-dynamic-003a.htm */
+
+ div#x:first-letter { color: blue; float: left; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003b.0.scss
new file mode 100644
index 0000000000..37e3dee7fd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-dynamic-003b.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-dynamic-003b.htm */
+
+ div#x:first-letter { color: blue; float: none }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.0.scss
new file mode 100644
index 0000000000..4aea22c740
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-inherit-001.htm */
+
+div { float: left; overflow: scroll; font-size: 50px; width: 3em; line-height: 10px }
+div:first-letter { float: inherit; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.1.scss
new file mode 100644
index 0000000000..9bc48c3a71
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-inherit-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-inherit-001.htm */
+.style { font-size: 10px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-001.0.scss
new file mode 100644
index 0000000000..7d79ae49d8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-001.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-002.0.scss
new file mode 100644
index 0000000000..8ab9328de6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-002.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-003.0.scss
new file mode 100644
index 0000000000..2c2b8a906f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-003.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-004.0.scss
new file mode 100644
index 0000000000..b568b4430b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-004.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-004.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-005.0.scss
new file mode 100644
index 0000000000..d5f9376161
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-005.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-005.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-006.0.scss
new file mode 100644
index 0000000000..fc0089ccde
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-006.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-006.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-007.0.scss
new file mode 100644
index 0000000000..5fbf16bc9d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-nested-007.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-nested-007.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-001.0.scss
new file mode 100644
index 0000000000..ba956560c8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-001.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-002.0.scss
new file mode 100644
index 0000000000..a5f95536b7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-002.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-002.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+ span:before { content: open-quote; }
+ span:after { content: close-quote; }
+ span { quotes: '"' '"'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-003.0.scss
new file mode 100644
index 0000000000..849c55abf5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-003.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-003.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+ span:before { content: open-quote "This "; }
+ span:after { content: close-quote; }
+ span { quotes: '"' '"'; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-004.0.scss
new file mode 100644
index 0000000000..96706e1f1e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-004.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-004.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-005.0.scss
new file mode 100644
index 0000000000..15214106ba
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-005.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-005.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-006.0.scss
new file mode 100644
index 0000000000..970e5b70b0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-letter-quote-006.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-letter-quote-006.htm */
+
+ div { color: black; }
+ div:first-letter { color: green; }
+ span:before { content: "\"This "; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-001.0.scss
new file mode 100644
index 0000000000..74973ac9a1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-001.htm */
+
+ body { color: red }
+ body:first-line { color: green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.0.scss
new file mode 100644
index 0000000000..5cec148572
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-001.htm */
+
+ div { color: green }
+ div:first-line { color: red }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.1.scss
new file mode 100644
index 0000000000..59ddfc8476
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-001.htm */
+.style { float: left }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.0.scss
new file mode 100644
index 0000000000..89f8cbdeda
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-002.htm */
+
+ div { color: red }
+ div:first-line { color: green }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.1.scss
new file mode 100644
index 0000000000..716528bfc2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-002.htm */
+.style { float: left }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.0.scss
new file mode 100644
index 0000000000..8b793f90aa
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-003.htm */
+
+ div { color: green }
+ div:first-line { color: red }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.1.scss
new file mode 100644
index 0000000000..1da72d9761
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-003.htm */
+.style { float: left }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-004.0.scss
new file mode 100644
index 0000000000..cade4a2861
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-floats-004.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-floats-004.htm */
+
+ div { color: green }
+ div:first-line { color: red }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-001.0.scss
new file mode 100644
index 0000000000..c5e5fe5468
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-001.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-inherit-001.htm */
+
+
+.a:first-line { }
+.a { overflow: scroll; }
+.b, .c { overflow: inherit; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-002.0.scss
new file mode 100644
index 0000000000..ea1027fc24
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-002.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-inherit-002.htm */
+
+ div { background: green; }
+ div:first-line { background-color: red; }
+ span.one { background: inherit; }
+ span.two { background-color: inherit; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-003.0.scss
new file mode 100644
index 0000000000..f498981952
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/first-line-inherit-003.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/first-line-inherit-003.htm */
+
+ div, p { background: green; }
+ div:first-line, p:first-line { background-color: red; }
+ span.one { background: inherit; }
+ span.two { background-color: inherit; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.0.scss
new file mode 100644
index 0000000000..9358f2916e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001a.htm */
+
+.left { float:left; }
+.right { float:right; }
+.left, .right { width:50px; height:50px; background:yellow; }
+p { overflow:auto; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.1.scss
new file mode 100644
index 0000000000..d803b8ffd2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001a.htm */
+.style { width:400px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.2.scss
new file mode 100644
index 0000000000..0a22209fb1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001a.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001a.htm */
+.style { text-align:right; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.0.scss
new file mode 100644
index 0000000000..80fe2ff996
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001b.htm */
+
+.left { float:left; }
+.right { float:right; }
+.left, .right { width:50px; height:50px; background:yellow; }
+p { overflow:auto; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.1.scss
new file mode 100644
index 0000000000..3992160e83
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001b.htm */
+.style { width:400px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.2.scss
new file mode 100644
index 0000000000..f19a8d2088
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001b.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001b.htm */
+.style { text-align:right; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.0.scss
new file mode 100644
index 0000000000..19d1d26dc5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001c.htm */
+
+.left { float:left; }
+.right { float:right; }
+.left, .right { width:50px; height:50px; background:yellow; }
+p { overflow:auto; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.1.scss
new file mode 100644
index 0000000000..c3143dca78
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001c.htm */
+.style { width:400px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.2.scss
new file mode 100644
index 0000000000..e52a60f4ed
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-001c.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-001c.htm */
+.style { text-align:right; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.0.scss
new file mode 100644
index 0000000000..4141a2ba00
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-003.htm */
+.style { width:100px; font-size:5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.1.scss
new file mode 100644
index 0000000000..aecdad0621
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-003.htm */
+.style { background:blue; width:100px; height:100px; float:left; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.2.scss
new file mode 100644
index 0000000000..2e7fc3e31e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-003.htm */
+.style { background:yellow; width:30px; height:30px; float:left; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.3.scss
new file mode 100644
index 0000000000..bacc9de7c9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-003.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-003.htm */
+.style { background:yellow; width:30px; height:30px; float:right; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.0.scss
new file mode 100644
index 0000000000..a1f23b9119
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-004.htm */
+.style { width:200px; font-size:5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.1.scss
new file mode 100644
index 0000000000..be86a0b01e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-004.htm */
+.style { background:green; width:100px; height:100px; float:left; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.2.scss
new file mode 100644
index 0000000000..b9c4341835
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-placement-vertical-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-placement-vertical-004.htm */
+.style { background:blue; width:100px; height:100px; float:left; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.0.scss
new file mode 100644
index 0000000000..1f12c6fb78
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-001.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.1.scss
new file mode 100644
index 0000000000..155ae9bb17
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-001.htm */
+.style { float: right; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.2.scss
new file mode 100644
index 0000000000..03921ad64e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-001.htm */
+.style { margin-right: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.3.scss
new file mode 100644
index 0000000000..82327074bf
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-001.htm */
+.style { float: left; width: 425px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.0.scss
new file mode 100644
index 0000000000..b0659ed170
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-002.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.1.scss
new file mode 100644
index 0000000000..51d4aae421
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-002.htm */
+.style { float: right; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.2.scss
new file mode 100644
index 0000000000..b64d557e23
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-002.htm */
+.style { margin-right: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.3.scss
new file mode 100644
index 0000000000..667087faba
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-left-002.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-left-002.htm */
+.style { float: left; width: 475px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.0.scss
new file mode 100644
index 0000000000..bb6604d005
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-001.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.1.scss
new file mode 100644
index 0000000000..7ee24227e9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-001.htm */
+.style { float: left; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.2.scss
new file mode 100644
index 0000000000..1d11bdf6dc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-001.htm */
+.style { margin-left: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.3.scss
new file mode 100644
index 0000000000..2ce67f6358
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-001.htm */
+.style { float: right; width: 425px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.0.scss
new file mode 100644
index 0000000000..02936f2d05
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-002.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.1.scss
new file mode 100644
index 0000000000..62e70dc857
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-002.htm */
+.style { float: left; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.2.scss
new file mode 100644
index 0000000000..33158539ba
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-002.htm */
+.style { margin-left: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.3.scss
new file mode 100644
index 0000000000..b657772275
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule3-outside-right-002.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule3-outside-right-002.htm */
+.style { float: right; width: 475px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.0.scss
new file mode 100644
index 0000000000..a0b07a7d20
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-left-001.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.1.scss
new file mode 100644
index 0000000000..282d40f7de
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-left-001.htm */
+.style { float: left; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.2.scss
new file mode 100644
index 0000000000..ab40480544
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-left-001.htm */
+.style { margin-left: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.3.scss
new file mode 100644
index 0000000000..3d1bced7d2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-left-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-left-001.htm */
+.style { float: left; width: 425px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.0.scss
new file mode 100644
index 0000000000..808f90847a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-right-001.htm */
+.style { float: left; width: 500px; height: 500px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.1.scss
new file mode 100644
index 0000000000..2591c3de52
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-right-001.htm */
+.style { float: right; width: 50px; height: 300px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.2.scss
new file mode 100644
index 0000000000..2ca9103b55
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-right-001.htm */
+.style { margin-right: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.3.scss
new file mode 100644
index 0000000000..a051758341
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-rule7-outside-right-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-rule7-outside-right-001.htm */
+.style { float: right; width: 425px; height: 10px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.0.scss
new file mode 100644
index 0000000000..55dbbeebaa
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+
+
+ table { margin: 0; border-spacing: 0; }
+ td, th { padding: 0; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.1.scss
new file mode 100644
index 0000000000..59d553acc3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { background: aqua }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.12.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.12.scss
new file mode 100644
index 0000000000..941f9b0c43
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.12.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { float:right; background:blue; width: 100px; height: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.2.scss
new file mode 100644
index 0000000000..231f1d76cf
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { float:left; background:blue; width: 100px; height: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.24.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.24.scss
new file mode 100644
index 0000000000..5304225969
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.24.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { overflow: hidden; background: yellow }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.3.scss
new file mode 100644
index 0000000000..0ffa20c60c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { float:left; background:silver; width: 100px; height: 6px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.4.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.4.scss
new file mode 100644
index 0000000000..3af0c41084
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { background: yellow }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.5.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.5.scss
new file mode 100644
index 0000000000..70e5ab27a3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { width: 150px; height: 10px; background: purple }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.8.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.8.scss
new file mode 100644
index 0000000000..4f0231e636
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-004.8.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-004.htm */
+.style { float:right; background:silver; width: 100px; height: 6px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.0.scss
new file mode 100644
index 0000000000..87b04d41d4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+
+
+ body { font-size: 10px; }
+
+ table { margin: 0; border-spacing: 0; }
+ td, th { padding: 0; vertical-align: top; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.1.scss
new file mode 100644
index 0000000000..4ed6811ec4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+.style { background: aqua }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.2.scss
new file mode 100644
index 0000000000..04ba12051e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+.style { float:left; background:blue; width: 200px; height: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.3.scss
new file mode 100644
index 0000000000..59ff5a258e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+.style { background: yellow }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.5.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.5.scss
new file mode 100644
index 0000000000..1f9328855c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+.style { float:right; background:blue; width: 200px; height: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.9.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.9.scss
new file mode 100644
index 0000000000..53a68a0469
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-005.9.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-005.htm */
+.style { overflow:hidden; background: yellow; width: 50%; height: 20px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.0.scss
new file mode 100644
index 0000000000..ca6d5ed844
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.0.scss
@@ -0,0 +1,12 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+
+
+ body { font-size: 16px; }
+
+ table { margin: 0; border-spacing: 0; }
+ caption, td, th { padding: 0; vertical-align: top; text-align: left; }
+
+ table table caption { background: yellow; }
+ table table { background: purple; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.1.scss
new file mode 100644
index 0000000000..beba9cf330
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { background: aqua }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.10.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.10.scss
new file mode 100644
index 0000000000..49c74a97d9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.10.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:110px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.11.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.11.scss
new file mode 100644
index 0000000000..deee635381
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.11.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:105px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.12.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.12.scss
new file mode 100644
index 0000000000..fdb260729a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.12.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:100px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.13.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.13.scss
new file mode 100644
index 0000000000..4522f57cb8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.13.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:95px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.131.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.131.scss
new file mode 100644
index 0000000000..a274d6ee7f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.131.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { caption-side: bottom; height:30px; width: 192px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.14.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.14.scss
new file mode 100644
index 0000000000..b49fd302a9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.14.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:90px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.15.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.15.scss
new file mode 100644
index 0000000000..2a29f56c3f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.15.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:85px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.16.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.16.scss
new file mode 100644
index 0000000000..e8f11cc823
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.16.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:80px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.17.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.17.scss
new file mode 100644
index 0000000000..231f28519c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.17.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:75px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.18.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.18.scss
new file mode 100644
index 0000000000..a4f78671cb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.18.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:70px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.19.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.19.scss
new file mode 100644
index 0000000000..9e9e29d19c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.19.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:65px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.2.scss
new file mode 100644
index 0000000000..501590ad5d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:150px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.20.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.20.scss
new file mode 100644
index 0000000000..126280a6fe
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.20.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:60px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.21.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.21.scss
new file mode 100644
index 0000000000..a7228173da
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.21.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:55px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.22.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.22.scss
new file mode 100644
index 0000000000..0cc681c041
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.22.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:50px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.23.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.23.scss
new file mode 100644
index 0000000000..f2c07e7838
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.23.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:45px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.24.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.24.scss
new file mode 100644
index 0000000000..b8e2c5796e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.24.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:40px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.25.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.25.scss
new file mode 100644
index 0000000000..ce05ee6888
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.25.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:35px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.26.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.26.scss
new file mode 100644
index 0000000000..d5ab773c5f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.26.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:30px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.27.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.27.scss
new file mode 100644
index 0000000000..3385f4ea30
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.27.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:25px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.28.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.28.scss
new file mode 100644
index 0000000000..6022a36c29
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.28.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:20px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.29.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.29.scss
new file mode 100644
index 0000000000..a352e1fa56
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.29.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:15px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.3.scss
new file mode 100644
index 0000000000..29eb47aa2f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:145px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.30.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.30.scss
new file mode 100644
index 0000000000..5bacfae2f3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.30.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:10px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.31.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.31.scss
new file mode 100644
index 0000000000..0a8445e2b0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.31.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:5px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.32.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.32.scss
new file mode 100644
index 0000000000..ba50d0bd65
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.32.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { caption-side: top; height:30px; width: 100px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.33.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.33.scss
new file mode 100644
index 0000000000..2dc59a3264
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.33.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { height: 30px; width: 230px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.4.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.4.scss
new file mode 100644
index 0000000000..97ec1f9113
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:140px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.5.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.5.scss
new file mode 100644
index 0000000000..0778fc55c9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:135px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.6.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.6.scss
new file mode 100644
index 0000000000..eee0117225
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.6.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:130px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.65.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.65.scss
new file mode 100644
index 0000000000..7c9e6eda76
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.65.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { caption-side: top; height:30px; width: 190px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.66.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.66.scss
new file mode 100644
index 0000000000..bb41e0cbaf
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.66.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { height: 30px; width: 100px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.7.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.7.scss
new file mode 100644
index 0000000000..764745abb1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.7.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:125px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.8.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.8.scss
new file mode 100644
index 0000000000..ae65d3d2e4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.8.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:120px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.9.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.9.scss
new file mode 100644
index 0000000000..c86cc30a7c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.9.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { float:left; clear:left; background:blue; width:115px; height:1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.98.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.98.scss
new file mode 100644
index 0000000000..9cd7749821
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.98.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { caption-side: bottom; height:30px; width: 100px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.99.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.99.scss
new file mode 100644
index 0000000000..eabd2b81b7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-006.99.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-006.htm */
+.style { height: 30px; width: 227px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.0.scss
new file mode 100644
index 0000000000..fe79ead93b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+
+
+ table { margin: 0; border-spacing: 0; }
+ td, th { padding: 0; vertical-align: top; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.1.scss
new file mode 100644
index 0000000000..da32416752
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { background: aqua }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.15.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.15.scss
new file mode 100644
index 0000000000..dc37b6963d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.15.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: 5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.16.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.16.scss
new file mode 100644
index 0000000000..c2fed6240b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.16.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: 5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.19.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.19.scss
new file mode 100644
index 0000000000..a656c57cf1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.19.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: 10px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.2.scss
new file mode 100644
index 0000000000..bcd2f016b0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { float: left; height: 10px; width: 150px; background: blue }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.20.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.20.scss
new file mode 100644
index 0000000000..64956d2143
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.20.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: -5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.23.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.23.scss
new file mode 100644
index 0000000000..9796be893b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.23.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: -5px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.24.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.24.scss
new file mode 100644
index 0000000000..7842444780
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.24.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: 10px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.27.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.27.scss
new file mode 100644
index 0000000000..d2e20e04cc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.27.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: 4px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.28.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.28.scss
new file mode 100644
index 0000000000..74db9f2d40
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.28.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: 4px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.3.scss
new file mode 100644
index 0000000000..b50e1429ae
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: 6px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.31.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.31.scss
new file mode 100644
index 0000000000..f09ed11cee
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.31.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: -1px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.39.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.39.scss
new file mode 100644
index 0000000000..8dcb8d161c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.39.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: -4px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.4.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.4.scss
new file mode 100644
index 0000000000..3a4a85219f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.40.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.40.scss
new file mode 100644
index 0000000000..bfdf7db3b4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.40.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: 0px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.43.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.43.scss
new file mode 100644
index 0000000000..6f0581a068
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.43.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; margin-bottom: 0px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.44.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.44.scss
new file mode 100644
index 0000000000..186f24937b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.44.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: -4px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.48.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.48.scss
new file mode 100644
index 0000000000..489890f8bd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.48.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: -1px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.7.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.7.scss
new file mode 100644
index 0000000000..0ee68c91ce
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.7.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { height: 5px; background: purple; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.8.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.8.scss
new file mode 100644
index 0000000000..5c131b1a4d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-007.8.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-007.htm */
+.style { overflow: hidden; width: 200px; height: 5px; background: yellow; margin-top: 6px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-outside-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-outside-001.0.scss
new file mode 100644
index 0000000000..c7fdc4f3ba
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-bfc-outside-001.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-bfc-outside-001.htm */
+
+#wrap {width:600px; border:1px solid;}
+.a {background:lime; color:#fff; width:80%;}
+.b {float:right; width:18%; background: cyan; color: #000; height:10em;}
+textarea {width: 100%; height:10em;}
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.0.scss
new file mode 100644
index 0000000000..f780444dc2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001l.htm */
+
+
+body { width: 400px; border: medium solid; }
+div { float: left; clear: left; }
+span { display: block; overflow: hidden; width: 200px; height: 50px; background: aqua; margin-right: auto; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.1.scss
new file mode 100644
index 0000000000..a695061dc6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001l.htm */
+.style { width: 50px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.2.scss
new file mode 100644
index 0000000000..94b3728f3d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001l.htm */
+.style { width: 100px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.0.scss
new file mode 100644
index 0000000000..c665929221
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001r.htm */
+
+
+body { width: 400px; border: medium solid; }
+div { float: right; clear: right; }
+span { display: block; overflow: hidden; width: 200px; height: 50px; background: aqua; margin-left: auto; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.1.scss
new file mode 100644
index 0000000000..2775ef585f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001r.htm */
+.style { width: 50px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.2.scss
new file mode 100644
index 0000000000..3c9ab6d376
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-001r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-001r.htm */
+.style { width: 100px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.0.scss
new file mode 100644
index 0000000000..48cf6ec53a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002l.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: block; overflow: hidden; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.1.scss
new file mode 100644
index 0000000000..10ffd0fc80
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002l.htm */
+.style { float: left; width: 150px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.2.scss
new file mode 100644
index 0000000000..3a572e8b03
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002l.htm */
+.style { float: right; width: 300px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.0.scss
new file mode 100644
index 0000000000..fe457370c1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002r.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: block; overflow: hidden; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.1.scss
new file mode 100644
index 0000000000..4e2081dba9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002r.htm */
+.style { float: right; width: 150px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.2.scss
new file mode 100644
index 0000000000..1055fac5ff
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-002r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-002r.htm */
+.style { float: left; width: 300px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.0.scss
new file mode 100644
index 0000000000..ef1a96a2bf
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003l.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: block; overflow: hidden; width: 100px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.1.scss
new file mode 100644
index 0000000000..1c57064ba3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003l.htm */
+.style { float: left; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.2.scss
new file mode 100644
index 0000000000..2e90f18734
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003l.htm */
+.style { float: right; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.0.scss
new file mode 100644
index 0000000000..d2971cb795
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003r.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: block; overflow: hidden; width: 100px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.1.scss
new file mode 100644
index 0000000000..f6306c31aa
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003r.htm */
+.style { float: right; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.2.scss
new file mode 100644
index 0000000000..3b63ad756d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-bfc-003r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-bfc-003r.htm */
+.style { float: left; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.0.scss
new file mode 100644
index 0000000000..6119b6895a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001l.htm */
+
+
+body { width: 400px; border: medium solid; text-align: left; }
+div { float: left; clear: left; }
+span { display: inline-block; vertical-align: top; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.1.scss
new file mode 100644
index 0000000000..60abfaa89f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001l.htm */
+.style { width: 50px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.2.scss
new file mode 100644
index 0000000000..bb8f7d8585
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001l.htm */
+.style { width: 100px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.0.scss
new file mode 100644
index 0000000000..3c674d4165
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001r.htm */
+
+
+body { width: 400px; border: medium solid; text-align: right; }
+div { float: right; clear: right; }
+span { display: inline-block; vertical-align: top; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.1.scss
new file mode 100644
index 0000000000..254cceff5d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001r.htm */
+.style { width: 50px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.2.scss
new file mode 100644
index 0000000000..f9da61827d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-001r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-001r.htm */
+.style { width: 100px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.0.scss
new file mode 100644
index 0000000000..d391fc5bb6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002l.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: inline-block; vertical-align: top; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.1.scss
new file mode 100644
index 0000000000..b8b4e306b2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002l.htm */
+.style { float: left; width: 150px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.2.scss
new file mode 100644
index 0000000000..4fe3554d42
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002l.htm */
+.style { float: right; width: 300px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.0.scss
new file mode 100644
index 0000000000..278a0b20d1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002r.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: inline-block; vertical-align: top; width: 200px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.1.scss
new file mode 100644
index 0000000000..24fc0000cb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002r.htm */
+.style { float: right; width: 150px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.2.scss
new file mode 100644
index 0000000000..5aba32ba55
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-002r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-002r.htm */
+.style { float: left; width: 300px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.0.scss
new file mode 100644
index 0000000000..5af166b155
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003l.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: inline-block; vertical-align: top; width: 100px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.1.scss
new file mode 100644
index 0000000000..ae6e0a84ea
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003l.htm */
+.style { float: left; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.2.scss
new file mode 100644
index 0000000000..f6a110f660
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003l.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003l.htm */
+.style { float: right; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.0.scss
new file mode 100644
index 0000000000..573684a70a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003r.htm */
+
+
+body { width: 400px; border: medium solid; }
+span { display: inline-block; vertical-align: top; width: 100px; height: 50px; background: aqua; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.1.scss
new file mode 100644
index 0000000000..ed8f4d939a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003r.htm */
+.style { float: right; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.2.scss
new file mode 100644
index 0000000000..3156752c2e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-wrap-top-below-inline-003r.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-wrap-top-below-inline-003r.htm */
+.style { float: left; width: 250px; height: 75px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.0.scss
new file mode 100644
index 0000000000..4cb8f644c2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { width: 500px; height: 500px; float: left; font-size: 12px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.1.scss
new file mode 100644
index 0000000000..c1ed4bbe00
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { float: left; width: 10px; height: 30px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.2.scss
new file mode 100644
index 0000000000..b3891027db
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { float: left; clear: left; width: 100px; height: 1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.3.scss
new file mode 100644
index 0000000000..92c36c2b4b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: blue; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.4.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.4.scss
new file mode 100644
index 0000000000..7a4a377d29
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: purple; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.5.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.5.scss
new file mode 100644
index 0000000000..30b08ae999
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-001.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-001.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: fuchsia }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.0.scss
new file mode 100644
index 0000000000..c718bdcd07
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { width: 500px; height: 500px; float: left; font-size: 12px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.1.scss
new file mode 100644
index 0000000000..fa43435f50
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { float: left; width: 10px; height: 30px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.2.scss
new file mode 100644
index 0000000000..302c91ab56
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { float: left; clear: left; width: 100px; height: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.3.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.3.scss
new file mode 100644
index 0000000000..d90881ad6d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: blue; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.4.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.4.scss
new file mode 100644
index 0000000000..1f403a2ed2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: purple; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.5.scss b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.5.scss
new file mode 100644
index 0000000000..901a27fe9d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/floats-zero-height-wrap-002.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/floats-zero-height-wrap-002.htm */
+.style { display:inline-block; vertical-align: bottom; height: 20px; width: 300px; background: fuchsia }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-001.0.scss
new file mode 100644
index 0000000000..f70698a920
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-001.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-001.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTest FamilyName, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-002.0.scss
new file mode 100644
index 0000000000..f1cfd976b2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-002.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-002.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: csstest familyname, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-003.0.scss
new file mode 100644
index 0000000000..55ae604a48
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-003.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-003.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: cssTest familyName, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-004.0.scss
new file mode 100644
index 0000000000..b95f2e94bf
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-004.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-004.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: "CSSTest FamilyName", CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-005.0.scss
new file mode 100644
index 0000000000..3a5f916cce
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-005.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-005.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: 'CSSTest FamilyName', CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-006.0.scss
new file mode 100644
index 0000000000..312f9c8948
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-006.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-006.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTest FamilyName, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-007.0.scss
new file mode 100644
index 0000000000..d6f61aa0da
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-007.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-007.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: "CSSTest FamilyName", CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-008.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-008.0.scss
new file mode 100644
index 0000000000..b0f025d6f0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-008.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-008.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: 'CSSTest FamilyName', CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-009.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-009.0.scss
new file mode 100644
index 0000000000..f6ed3eea3d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-009.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-009.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTest \000046amilyName, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-012.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-012.0.scss
new file mode 100644
index 0000000000..ff9c919acd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-012.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-012.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: "CSSTest Family\Name", CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-013.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-013.0.scss
new file mode 100644
index 0000000000..04100a1326
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-013.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-013.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTest FamilyName Bold, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-014.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-014.0.scss
new file mode 100644
index 0000000000..d98252d89d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-014.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-014.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTestFamilyNameBold, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-016.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-016.0.scss
new file mode 100644
index 0000000000..11566bc342
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-016.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-016.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ p {
+ font-family: CSSTest Weights 400;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-017.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-017.0.scss
new file mode 100644
index 0000000000..ea2b2110b0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-017.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-017.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ body { font-family: CSSTest Fallback; }
+ p, div {
+ font-family: CSSTest Unknown;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-018.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-018.0.scss
new file mode 100644
index 0000000000..81e90cee9c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-018.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-018.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ body { font-family: CSSTest Fallback; }
+ p, div {
+ font-family: "CSSTest Unknown";
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-019.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-019.0.scss
new file mode 100644
index 0000000000..ad32f6351b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-019.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-019.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ div#test { font-family: CSSTest Fallback; }
+ p {
+ font-family: CSSTest Unknown;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-020.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-020.0.scss
new file mode 100644
index 0000000000..0d66b81154
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-020.0.scss
@@ -0,0 +1,9 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-020.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ div#test { font-family: CSSTest Fallback; }
+ p {
+ font-family: "CSSTest Unknown";
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-021.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-021.0.scss
new file mode 100644
index 0000000000..592d994b47
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-021.0.scss
@@ -0,0 +1,10 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-021.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ body { font-family: "CSSTest FamilyName"; }
+ div { font-family: "CSSTest Unknown"; }
+ p {
+ font-family: "CSSTest" Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-022.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-022.0.scss
new file mode 100644
index 0000000000..dc737140a8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-022.0.scss
@@ -0,0 +1,14 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-022.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ div { font-family: "CSSTest Unknown"; }
+ p {
+ }
+ p#test1 {
+ font-family: x-large CSSTest Fallback;
+ }
+ p#test4 {
+ font-family: caption CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-023.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-023.0.scss
new file mode 100644
index 0000000000..4c4dc9c7f3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-023.0.scss
@@ -0,0 +1,20 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-023.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ div.test { font-family: CSSTest Fallback; }
+ p {
+ }
+ p#test1a {
+ font-family: "small-caps 1in CSSTest FamilyName Funky", CSSTest Fallback;
+ }
+ p#test2 {
+ font-family: x-large CSSTest FamilyName Funky, CSSTest Fallback;
+ }
+ p#test2a {
+ font-family: "x-large CSSTest FamilyName Funky", CSSTest Fallback;
+ }
+ p#test3a {
+ font-family: "12px CSSTest FamilyName Funky", CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-family-name-024.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-024.0.scss
new file mode 100644
index 0000000000..79ac477f2c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-family-name-024.0.scss
@@ -0,0 +1,26 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-024.htm */
+
+ body { font-size: 36px; }
+ span#verify { font-family: CSSTest Verify; }
+ div.test { font-family: CSSTest Fallback; }
+ p {
+ }
+ p#test1 {
+ font-family: caption, CSSTest Fallback;
+ }
+ p#test2 {
+ font-family: icon, CSSTest Fallback;
+ }
+ p#test3 {
+ font-family: menu, CSSTest Fallback;
+ }
+ p#test4 {
+ font-family: message-box, CSSTest Fallback;
+ }
+ p#test5 {
+ font-family: small-caption, CSSTest Fallback;
+ }
+ p#test6 {
+ font-family: status-bar, CSSTest Fallback;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-weight-bolder-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-weight-bolder-001.0.scss
new file mode 100644
index 0000000000..e1334dbe2f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-weight-bolder-001.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-weight-bolder-001.htm */
+
+ span#verify { font-family: CSSTest Verify; font-weight: normal; }
+ div { margin-bottom: 1em; }
+ body { margin: 50px; }
+ table {
+ border-collapse: collapse;
+ }
+ th {
+ font-weight: normal;
+ text-align: left;
+ padding-right: 1em;
+ }
+ span { font-weight: bolder; }
+ thead th { text-align: center; padding-bottom: 1em; }
+ td { width: 5em; text-align: center; }
+ td.f1 { font-family: CSSTest Weights Full; }
+ td.f2 { font-family: CSSTest Weights W1479; }
+ td.f3 { font-family: CSSTest Weights W15; }
+ td.f4 { font-family: CSSTest Weights W24; }
+ td.f5 { font-family: CSSTest Weights W2569; }
+ td.f6 { font-family: CSSTest Weights W258; }
+ td.f7 { font-family: CSSTest Weights W3589; }
+ td.f8 { font-family: CSSTest Weights W47; }
+ th.f1 { display: table-cell; }
+ th.f2 { display: table-cell; }
+ th.f3 { display: table-cell; }
+ th.f4 { display: table-cell; }
+ th.f5 { display: table-cell; }
+ th.f6 { display: table-cell; }
+ th.f7 { display: table-cell; }
+ th.f8 { display: table-cell; }
+
+ tr.w1 td { font-weight: 100; }
+ tr.w2 td { font-weight: 200; }
+ tr.w3 td { font-weight: 300; }
+ tr.w4 td { font-weight: 400; }
+ tr.w5 td { font-weight: 500; }
+ tr.w6 td { font-weight: 600; }
+ tr.w7 td { font-weight: 700; }
+ tr.w8 td { font-weight: 800; }
+ tr.w9 td { font-weight: 900; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-weight-lighter-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-weight-lighter-001.0.scss
new file mode 100644
index 0000000000..1840142b38
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-weight-lighter-001.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-weight-lighter-001.htm */
+
+ span#verify { font-family: CSSTest Verify; font-weight: normal; }
+ div { margin-bottom: 1em; }
+ body { margin: 50px; }
+ table {
+ border-collapse: collapse;
+ }
+ th {
+ font-weight: normal;
+ text-align: left;
+ padding-right: 1em;
+ }
+ span { font-weight: lighter; }
+ thead th { text-align: center; padding-bottom: 1em; }
+ td { width: 5em; text-align: center; }
+ td.f1 { font-family: CSSTest Weights Full; }
+ td.f2 { font-family: CSSTest Weights W1479; }
+ td.f3 { font-family: CSSTest Weights W15; }
+ td.f4 { font-family: CSSTest Weights W24; }
+ td.f5 { font-family: CSSTest Weights W2569; }
+ td.f6 { font-family: CSSTest Weights W258; }
+ td.f7 { font-family: CSSTest Weights W3589; }
+ td.f8 { font-family: CSSTest Weights W47; }
+ th.f1 { display: table-cell; }
+ th.f2 { display: table-cell; }
+ th.f3 { display: table-cell; }
+ th.f4 { display: table-cell; }
+ th.f5 { display: table-cell; }
+ th.f6 { display: table-cell; }
+ th.f7 { display: table-cell; }
+ th.f8 { display: table-cell; }
+
+ tr.w1 td { font-weight: 100; }
+ tr.w2 td { font-weight: 200; }
+ tr.w3 td { font-weight: 300; }
+ tr.w4 td { font-weight: 400; }
+ tr.w5 td { font-weight: 500; }
+ tr.w6 td { font-weight: 600; }
+ tr.w7 td { font-weight: 700; }
+ tr.w8 td { font-weight: 800; }
+ tr.w9 td { font-weight: 900; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/font-weight-normal-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/font-weight-normal-001.0.scss
new file mode 100644
index 0000000000..29a665ee9a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/font-weight-normal-001.0.scss
@@ -0,0 +1,43 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/font-weight-normal-001.htm */
+
+ span#verify { font-family: CSSTest Verify; font-weight: normal; }
+ div { margin-bottom: 1em; }
+ body { margin: 50px; }
+ table {
+ border-collapse: collapse;
+ }
+ th {
+ font-weight: normal;
+ text-align: left;
+ padding-right: 1em;
+ }
+ span { }
+ thead th { text-align: center; padding-bottom: 1em; }
+ td { width: 5em; text-align: center; }
+ td.f1 { font-family: CSSTest Weights Full; }
+ td.f2 { font-family: CSSTest Weights W1479; }
+ td.f3 { font-family: CSSTest Weights W15; }
+ td.f4 { font-family: CSSTest Weights W24; }
+ td.f5 { font-family: CSSTest Weights W2569; }
+ td.f6 { font-family: CSSTest Weights W258; }
+ td.f7 { font-family: CSSTest Weights W3589; }
+ td.f8 { font-family: CSSTest Weights W47; }
+ th.f1 { display: table-cell; }
+ th.f2 { display: table-cell; }
+ th.f3 { display: table-cell; }
+ th.f4 { display: table-cell; }
+ th.f5 { display: table-cell; }
+ th.f6 { display: table-cell; }
+ th.f7 { display: table-cell; }
+ th.f8 { display: table-cell; }
+
+ tr.w1 td { font-weight: 100; }
+ tr.w2 td { font-weight: 200; }
+ tr.w3 td { font-weight: 300; }
+ tr.w4 td { font-weight: 400; }
+ tr.w5 td { font-weight: 500; }
+ tr.w6 td { font-weight: 600; }
+ tr.w7 td { font-weight: 700; }
+ tr.w8 td { font-weight: 800; }
+ tr.w9 td { font-weight: 900; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-000.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-000.0.scss
new file mode 100644
index 0000000000..9ddf923d46
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-000.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-000.htm */
+
+span { display: inline-block; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-001.0.scss
new file mode 100644
index 0000000000..595b0fef80
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-height-001.htm */
+
+div { display: inline-block; width: 10em; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-002.0.scss
new file mode 100644
index 0000000000..2876e73ab5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-height-002.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-height-002.htm */
+
+div { display: inline-block; height: 5em; width:10em; vertical-align: baseline; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-001.0.scss
new file mode 100644
index 0000000000..5d2446d71f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-valign-001.htm */
+
+span { display: inline-block; }
+span > span { display: block; visibility: hidden; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-002.0.scss
new file mode 100644
index 0000000000..f262046c2b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-valign-002.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-valign-002.htm */
+
+body { background: white; color: black; }
+span { display: inline-block; margin: 3px 0; border: 4px solid white; border-width: 4px 0; padding: 9px 0; }
+span > span { display: block; visibility: hidden; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001a.0.scss
new file mode 100644
index 0000000000..18c2f89059
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-width-001a.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-block; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001b.0.scss
new file mode 100644
index 0000000000..438331f06c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-001b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-width-001b.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-block; background: green; color: white; width: 10em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002a.0.scss
new file mode 100644
index 0000000000..851a3e0556
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002a.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-width-002a.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-block; background: green; color: white; }
+body > div > div > div { width: 20em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002b.0.scss
new file mode 100644
index 0000000000..652628c616
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-width-002b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-width-002b.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-block; background: green; color: white; width: 20em; }
+body > div > div > div { width: 20em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-001.0.scss
new file mode 100644
index 0000000000..b04dd45c9a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-zorder-001.htm */
+
+div { width: 2em; height: 1em; }
+span { display:inline-block; vertical-align: top; width: 2em; height: 1em; background: green; }
+div#after { margin-top:-1em; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-002.0.scss
new file mode 100644
index 0000000000..f888f84439
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-002.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-zorder-002.htm */
+
+div { width: 2em; height: 1em; }
+span { display:inline-block; vertical-align: top; width: 2em; height: 1em; }
+span span { display: block; background: green; }
+div#after { margin-top: -1em; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-003.0.scss
new file mode 100644
index 0000000000..902c10615b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-003.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-zorder-003.htm */
+
+div { height: 1em; }
+div#test span { display:inline-block; vertical-align: top; height: 1em; background: red; color: red; }
+div#after { margin-top:-1em; }
+div#after span { display: inline; vertical-align: top; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-004.0.scss
new file mode 100644
index 0000000000..2a326680b7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-004.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-zorder-004.htm */
+
+div#test span { display:inline-block; vertical-align: top; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+div#before { height: 1em; margin-bottom:-1em; }
+div#before span { display: inline; vertical-align: top; background: red; color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-005.0.scss
new file mode 100644
index 0000000000..7831203024
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-block-zorder-005.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-block-zorder-005.htm */
+
+div#test > span { display:inline-block; vertical-align: top; }
+div#test > span > span { display: block; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+div#before { height: 1em; margin-bottom:-1em; }
+div#before > span { display: inline; vertical-align: top; background: red; color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-002a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-002a.0.scss
new file mode 100644
index 0000000000..bbb79e3952
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-002a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-002a.htm */
+
+span { display: inline-table; }
+span > span { display: block; visibility: hidden; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-002b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-002b.0.scss
new file mode 100644
index 0000000000..085e0301ae
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-002b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-002b.htm */
+
+span > span { display: table-cell; }
+span > span > span { display: block; visibility: hidden; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-003.0.scss
new file mode 100644
index 0000000000..ced4d93ae8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-003.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-003.htm */
+
+span { display: inline-table; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-001.0.scss
new file mode 100644
index 0000000000..76cf9d68e4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-001.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-height-001.htm */
+
+div { display: inline-table; width: 10em; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-002.0.scss
new file mode 100644
index 0000000000..ee38aae8ea
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-height-002.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-height-002.htm */
+
+div { display: inline-table; height: 5em; vertical-align: baseline; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-valign-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-valign-001.0.scss
new file mode 100644
index 0000000000..73e683bbcd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-valign-001.0.scss
@@ -0,0 +1,15 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-valign-001.htm */
+
+span#table { display: inline-table; }
+span#rowgroup { display: table-row-group; }
+span#row { display: table-row; }
+span#cell { display: table-cell; }
+span#table, span#rowgroup, span#row, span#cell {
+ border: 4px solid white;
+ margin: 3px 0;
+ border-width: 4px 0;
+ padding: 9px 0;
+ border-spacing: 0 5px;
+}
+span#block { display: block; visibility: hidden; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001a.0.scss
new file mode 100644
index 0000000000..78e2c1ecab
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001a.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-width-001a.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-table; background: green; color: white; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001b.0.scss
new file mode 100644
index 0000000000..3a7ba0f225
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-001b.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-width-001b.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-table; background: green; color: white; width: 10em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002a.0.scss
new file mode 100644
index 0000000000..686714f14a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002a.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-width-002a.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-table; background: green; color: white; }
+body > div > div > div { width: 20em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002b.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002b.0.scss
new file mode 100644
index 0000000000..c363def1ac
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-width-002b.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-width-002b.htm */
+
+body > div { width: 10em; }
+body > div > div { display: inline-table; background: green; color: white; width: 20em; }
+body > div > div > div { width: 20em; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-001.0.scss
new file mode 100644
index 0000000000..79c11c95e5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-zorder-001.htm */
+
+div { width: 2em; height: 2em; }
+span { display:inline-table; vertical-align: top; width: 2em; height: 2em; background: green; }
+div#after { margin-top:-2em; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-002.0.scss
new file mode 100644
index 0000000000..6e208ec410
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-002.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-zorder-002.htm */
+
+div { width: 2em; height: 2em; }
+span { display:inline-table; vertical-align: top; width: 2em; height: 2em; }
+span span { display: block; background: green; }
+div#after { margin-top: -2em; background: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-003.0.scss
new file mode 100644
index 0000000000..8722af2fb2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-003.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-zorder-003.htm */
+
+div { height: 1em; }
+div#test > span { display:inline-table; vertical-align: top; height: 1em; background: red; color: red; }
+div#after { margin-top:-1em; }
+div#after > span { display: inline; vertical-align: top; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-004.0.scss
new file mode 100644
index 0000000000..344d56ff21
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-004.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-zorder-004.htm */
+
+div#test > span { display:inline-table; vertical-align: top; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+div#before { height: 1em; margin-bottom:-1em; }
+div#before > span { display: inline; vertical-align: top; background: red; color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-005.0.scss
new file mode 100644
index 0000000000..de883783f6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/inline-table-zorder-005.0.scss
@@ -0,0 +1,7 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/inline-table-zorder-005.htm */
+
+div#test > span { display:inline-table; vertical-align: top; }
+div#test > span > span { display: block; background: green; color: green; border-bottom: 0.25em solid green; border-top: 0.25em solid green; }
+div#before { height: 1em; margin-bottom:-1em; }
+div#before > span { display: inline; vertical-align: top; background: red; color: red; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/quotes-035.0.scss b/theme-compiler/tests/resources/w3ctests/scss/quotes-035.0.scss
new file mode 100644
index 0000000000..7e8809a736
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/quotes-035.0.scss
@@ -0,0 +1,29 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/quotes-035.htm */
+
+
+ .party1 * { display: inline; }
+ .party1 .a { quotes: "Isn" "'"
+ "t" "FAIL!"
+ "FAIL!" " i"; }
+ .party1 .b { quotes: "" "FAIL!!"
+ " wonderful" "!!!"
+ " to " " work"
+ "see " " [FAIL to]"
+ "C" "quotes"
+ "S" " "; }
+ .party1 .c { quotes: none; }
+ .party1 .d { quotes: "FAIL!" "FAIL!"
+ "FAIL!" "FAIL!"
+ "" ""; }
+ .test { margin-left: 2em; }
+ .test .no-open:before { content: no-open-quote; }
+ .test .open:before { content: open-quote; }
+ .test .triple-open:before { content: open-quote open-quote open-quote; }
+ .test .no-close:after { content: no-close-quote; }
+ .test .triple-no-close:after { content: no-close-quote no-close-quote no-close-quote; }
+ .test .close:after { content: close-quote; }
+ .test .triple-close:after { content: close-quote close-quote close-quote; }
+ .test .no-close-open:before { content: no-close-quote open-quote; }
+
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/quotes-035a.0.scss b/theme-compiler/tests/resources/w3ctests/scss/quotes-035a.0.scss
new file mode 100644
index 0000000000..e4e3d17658
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/quotes-035a.0.scss
@@ -0,0 +1,31 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/quotes-035a.htm */
+
+
+ .party1 * { display: inline; }
+ .party1 .a { quotes: "Isn" "'"
+ "t" "FAIL!"
+ "FAIL!" " i"; }
+ .party1 .b { quotes: "" "FAIL!!"
+ " wonderful" "!!!"
+ " to " " work"
+ "see " " [FAIL to]"
+ "C" "quotes"
+ "S" " "
+ "S" " "; }
+ .party1 .c { quotes: none; }
+ .party1 .d { quotes: "FAIL!" "FAIL!"
+ "FAIL!" "FAIL!"
+ "" ""
+ "" ""; }
+ .test { margin-left: 2em; }
+ .test .no-open:before { content: no-open-quote; }
+ .test .open:before { content: open-quote; }
+ .test .triple-open:before { content: open-quote open-quote open-quote; }
+ .test .no-close:after { content: no-close-quote; }
+ .test .triple-no-close:after { content: no-close-quote no-close-quote no-close-quote; }
+ .test .close:after { content: close-quote; }
+ .test .triple-close:after { content: close-quote close-quote close-quote; }
+ .test .no-close-open:before { content: no-close-quote open-quote; }
+
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/quotes-036.0.scss b/theme-compiler/tests/resources/w3ctests/scss/quotes-036.0.scss
new file mode 100644
index 0000000000..2d2927c254
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/quotes-036.0.scss
@@ -0,0 +1,35 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/quotes-036.htm */
+
+
+ .party1 * { display: inline; }
+ .party1 .a { quotes: "Isn" "'"
+ "t" "FAIL!"
+ "FAIL!" " i"; }
+ .party1 .b { quotes: "" "FAIL!!"
+ " wonderful" "!!!"
+ " to " " work"
+ "see " " [FAIL to]"
+ "C" "quotes"
+ "S" " "; }
+ .party1 .c { quotes: none; }
+ .party1 .d { quotes: "FAIL!" "FAIL!"
+ "FAIL!" "FAIL!"
+ "" ""; }
+ .test { margin-left: 2em; }
+ .test .no-open:before { content: no-open-quote; }
+ .test .open:before { content: open-quote; }
+ .test .triple-open:before { content: open-quote open-quote open-quote; }
+ .test .no-close:after { content: no-close-quote; }
+ .test .triple-no-close:after { content: no-close-quote no-close-quote no-close-quote; }
+ .test .close:after { content: close-quote; }
+ .test .triple-close:after { content: close-quote close-quote close-quote; }
+ .test .no-close-open:before { content: no-close-quote open-quote; }
+
+ /* hr br */
+ .test hr, .test br { display: inline; margin: 0; padding: 0;
+ height: auto; width: auto; border: none; color: inherit;
+ background: transparent; }
+ .test br:before { content: "" }
+ .test br:after { content: "" }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/ref-green-box-100x100.0.scss b/theme-compiler/tests/resources/w3ctests/scss/ref-green-box-100x100.0.scss
new file mode 100644
index 0000000000..6ee83f95d6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/ref-green-box-100x100.0.scss
@@ -0,0 +1,8 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/support/ref-green-box-100x100.htm */
+
+ div {
+ width: 100px;
+ height: 100px;
+ background: green;
+ }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-cell-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-cell-001.0.scss
new file mode 100644
index 0000000000..c03a4049a6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-cell-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-cell-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color td.t { background-color: aqua; }
+
+ table.imagetl td.t, table.imagebr td.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl td.t { background-position: top left; /* default */ }
+ table.imagebr td.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-colgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-colgroup-001.0.scss
new file mode 100644
index 0000000000..d0ce72d0e0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-colgroup-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-colgroup-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color colgroup.t { background-color: aqua; }
+
+ table.imagetl colgroup.t, table.imagebr colgroup.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl colgroup.t { background-position: top left; /* default */ }
+ table.imagebr colgroup.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-column-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-column-001.0.scss
new file mode 100644
index 0000000000..c3d2bd0503
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-column-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-column-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color col.t { background-color: aqua; }
+
+ table.imagetl col.t, table.imagebr col.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl col.t { background-position: top left; /* default */ }
+ table.imagebr col.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-row-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-row-001.0.scss
new file mode 100644
index 0000000000..1a7049fba8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-row-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-row-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color tr.t { background-color: aqua; }
+
+ table.imagetl tr.t, table.imagebr tr.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl tr.t { background-position: top left; /* default */ }
+ table.imagebr tr.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-rowgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-rowgroup-001.0.scss
new file mode 100644
index 0000000000..69c10cca9f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-rowgroup-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-rowgroup-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color tbody.t { background-color: aqua; }
+
+ table.imagetl tbody.t, table.imagebr tbody.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl tbody.t { background-position: top left; /* default */ }
+ table.imagebr tbody.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-table-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-table-001.0.scss
new file mode 100644
index 0000000000..b6a8f27ab2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bc-table-001.0.scss
@@ -0,0 +1,33 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bc-table-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 8px 6px; /* collapsed */
+ padding: 3px 7px 8px 6px; /* ignored */
+ border-collapse: collapse;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 0 4px 2px; /* collapsed */
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color { background-color: aqua; }
+
+ table.imagetl, table.imagebr {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl { background-position: top left; /* default */ }
+ table.imagebr { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-cell-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-cell-001.0.scss
new file mode 100644
index 0000000000..02289c80e2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-cell-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-cell-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color td.t { background-color: aqua; }
+
+ table.imagetl td.t, table.imagebr td.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl td.t { background-position: top left; /* default */ }
+ table.imagebr td.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-colgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-colgroup-001.0.scss
new file mode 100644
index 0000000000..dae2af72ae
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-colgroup-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-colgroup-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color colgroup.t { background-color: aqua; }
+
+ table.imagetl colgroup.t, table.imagebr colgroup.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl colgroup.t { background-position: top left; /* default */ }
+ table.imagebr colgroup.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-column-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-column-001.0.scss
new file mode 100644
index 0000000000..8289f3a4bb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-column-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-column-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color col.t { background-color: aqua; }
+
+ table.imagetl col.t, table.imagebr col.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl col.t { background-position: top left; /* default */ }
+ table.imagebr col.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-row-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-row-001.0.scss
new file mode 100644
index 0000000000..f2ec27e38b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-row-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-row-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color tr.t { background-color: aqua; }
+
+ table.imagetl tr.t, table.imagebr tr.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl tr.t { background-position: top left; /* default */ }
+ table.imagebr tr.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-rowgroup-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-rowgroup-001.0.scss
new file mode 100644
index 0000000000..cb5b8f79a6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-rowgroup-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-rowgroup-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color tbody.t { background-color: aqua; }
+
+ table.imagetl tbody.t, table.imagebr tbody.t {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl tbody.t { background-position: top left; /* default */ }
+ table.imagebr tbody.t { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-table-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-table-001.0.scss
new file mode 100644
index 0000000000..6d1eabb6a8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-backgrounds-bs-table-001.0.scss
@@ -0,0 +1,34 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-backgrounds-bs-table-001.htm */
+
+
+ html, body { margin: 0; padding: 0; border: 0; font-size: 16px; }
+ body { padding: 15px; }
+
+ table {
+ margin: 0 3px 2px 4px; /* zero top to work around collapsing bug */
+ border: transparent solid;
+ border-width: 4px 2px 7px 3px;
+ padding: 3px 7px 8px 6px;
+ border-collapse: separate;
+ border-spacing: 2px 3px;
+ }
+
+ td {
+ border: transparent solid;
+ border-width: 2px 1px 4px 3px;
+ padding: 1px 2px 4px 3px;
+ empty-cells: show;
+ }
+
+ div { height: 10px; width: 50px; }
+
+ table.color { background-color: aqua; }
+
+ table.imagetl, table.imagebr {
+ background-image: url(support/repeatable-diagonal-gradient-with-ticks.png);
+ }
+
+ table.imagetl { background-position: top left; /* default */ }
+ table.imagebr { background-position: bottom right; /* default */ }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.0.scss
new file mode 100644
index 0000000000..bc5733aedd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-in-inline-001.htm */
+.style { display: table-row }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.1.scss
new file mode 100644
index 0000000000..a4d01762bd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-in-inline-001.htm */
+.style { display: block }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.2.scss
new file mode 100644
index 0000000000..fe13eb4cbb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-in-inline-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-in-inline-001.htm */
+.style { display: table-cell }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.0.scss
new file mode 100644
index 0000000000..15d24294d1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-001.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.1.scss
new file mode 100644
index 0000000000..c93d980b57
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-001.htm */
+.style { padding-top: 40px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.2.scss
new file mode 100644
index 0000000000..8c98e302cc
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-001.htm */
+.style { padding-top: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.3.scss
new file mode 100644
index 0000000000..90b0e303b2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-001.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-001.htm */
+.style { padding-top: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.0.scss
new file mode 100644
index 0000000000..9e8fc17d73
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-002.htm */
+
+
+td { vertical-align: baseline; padding-top: 0; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.1.scss
new file mode 100644
index 0000000000..c8a265b2e4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-002.htm */
+.style { padding-top: 40px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.2.scss
new file mode 100644
index 0000000000..84c4a43819
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-002.htm */
+.style { padding-top: 20px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.3.scss
new file mode 100644
index 0000000000..b212fc065f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-002.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-002.htm */
+.style { padding-top: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.0.scss
new file mode 100644
index 0000000000..b623b103e4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-003.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.1.scss
new file mode 100644
index 0000000000..646c3603f7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-003.htm */
+.style { padding-top: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.2.scss
new file mode 100644
index 0000000000..c461bdba34
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-003.htm */
+.style { padding-top: 40px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.3.scss
new file mode 100644
index 0000000000..3b0a262d34
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-003.htm */
+.style { padding-top: 12px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.4.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.4.scss
new file mode 100644
index 0000000000..055905d9d7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-003.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-003.htm */
+.style { padding-top: 3px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.0.scss
new file mode 100644
index 0000000000..3563cde096
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-004.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.1.scss
new file mode 100644
index 0000000000..eac995c41d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-004.htm */
+.style { padding-top: 12px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.2.scss
new file mode 100644
index 0000000000..b2745143e2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-004.htm */
+.style { padding-top: 3px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.3.scss
new file mode 100644
index 0000000000..15214ad16a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-004.htm */
+.style { padding-top: 40px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.4.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.4.scss
new file mode 100644
index 0000000000..4b93164a1b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-004.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-004.htm */
+.style { padding-top: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.0.scss
new file mode 100644
index 0000000000..49e4923cc8
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.1.scss
new file mode 100644
index 0000000000..7896c6342c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 0; height: 80px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.2.scss
new file mode 100644
index 0000000000..e000d2e340
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 40px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.3.scss
new file mode 100644
index 0000000000..0a30e0d376
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 12px; height: 120px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.4.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.4.scss
new file mode 100644
index 0000000000..c4152587ea
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 3px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.5.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.5.scss
new file mode 100644
index 0000000000..ec44e94e6d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 40px; height: 160px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.6.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.6.scss
new file mode 100644
index 0000000000..3a3990256c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-005.6.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-005.htm */
+.style { padding-top: 0 }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.0.scss
new file mode 100644
index 0000000000..3f56772677
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.1.scss
new file mode 100644
index 0000000000..4b20736354
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 0; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.2.scss
new file mode 100644
index 0000000000..9f71b57dd9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 40px; height: 80px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.3.scss
new file mode 100644
index 0000000000..dd8cd111f5
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 12px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.4.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.4.scss
new file mode 100644
index 0000000000..90ef71d106
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 3px; height: 120px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.5.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.5.scss
new file mode 100644
index 0000000000..6d33486f7c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 40px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.6.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.6.scss
new file mode 100644
index 0000000000..0bec2dee1a
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-006.6.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-006.htm */
+.style { padding-top: 0; height: 160px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.0.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.0.scss
new file mode 100644
index 0000000000..6c11f1b90f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.0.scss
@@ -0,0 +1,6 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+
+
+td { vertical-align: baseline; }
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.1.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.1.scss
new file mode 100644
index 0000000000..4863e1df5b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+.style { padding-top: 0; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.2.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.2.scss
new file mode 100644
index 0000000000..d32301afb9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+.style { padding-top: 40px; height: 80px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.3.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.3.scss
new file mode 100644
index 0000000000..b25a964d73
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+.style { padding-top: 12px; height: 160px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.4.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.4.scss
new file mode 100644
index 0000000000..98808066f1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+.style { padding-top: 3px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.5.scss b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.5.scss
new file mode 100644
index 0000000000..8a366d4df2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/table-vertical-align-baseline-007.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/table-vertical-align-baseline-007.htm */
+.style { padding-top: 40px; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-113.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-113.0.scss
new file mode 100644
index 0000000000..01e37d208c
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-113.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-113.htm */
+
+p { text-indent: 100px }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-114.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-114.0.scss
new file mode 100644
index 0000000000..ec19eb2816
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-114.0.scss
@@ -0,0 +1,4 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-114.htm */
+
+p { text-indent: 0px }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-115.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-115.0.scss
new file mode 100644
index 0000000000..569f033276
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-115.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-115.htm */
+
+p { text-indent: 100px }
+span { background: yellow }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.0.scss
new file mode 100644
index 0000000000..6ed93593e9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+
+
+body { font-size: 12px; width: 1px; }
+
+body > div, body > pre {
+ float: left; clear: left; margin: 1px; height: 2em;
+ border: medium solid;
+}
+
+span {
+ display: inline-block;
+ height: 1em;
+ width: 1em;
+}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.1.scss
new file mode 100644
index 0000000000..c71814945e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+.style { text-indent: 3em; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.11.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.11.scss
new file mode 100644
index 0000000000..d43af6804b
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.11.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+.style { width: 6em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.4.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.4.scss
new file mode 100644
index 0000000000..aecf9b104d
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+.style { text-indent: 3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.5.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.5.scss
new file mode 100644
index 0000000000..4d3f04cdf4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+.style { width: 1em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.8.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.8.scss
new file mode 100644
index 0000000000..11f2a1b4c7
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-001.8.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-001.htm */
+.style { width: 2em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.0.scss
new file mode 100644
index 0000000000..7dcafd1001
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+
+
+body { font-size: 12px; }
+
+body > div, body > pre {
+ float: left; clear: left; margin: 1px; height: 2em;
+ border: medium solid;
+}
+
+span {
+ display: inline-block;
+ height: 1em;
+ width: 1em;
+}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.1.scss
new file mode 100644
index 0000000000..fb9ad27680
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+.style { text-indent: 3em; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.11.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.11.scss
new file mode 100644
index 0000000000..9783ca14ac
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.11.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+.style { width: 6em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.4.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.4.scss
new file mode 100644
index 0000000000..dc20dd4b85
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+.style { text-indent: 3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.5.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.5.scss
new file mode 100644
index 0000000000..41cee98d11
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+.style { width: 1em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.8.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.8.scss
new file mode 100644
index 0000000000..49161e2910
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-002.8.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-002.htm */
+.style { width: 2em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.0.scss
new file mode 100644
index 0000000000..98f79df5fd
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+
+
+body { font-size: 12px; }
+
+body > div, body > pre {
+ float: left; clear: left; margin: 1px; height: 2em;
+ border: medium solid;
+}
+
+span {
+ display: inline-block;
+ height: 1em;
+ width: 1em;
+}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.1.scss
new file mode 100644
index 0000000000..ef4f538864
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { width: 1px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.11.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.11.scss
new file mode 100644
index 0000000000..29d824d66e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.11.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { width: 3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.17.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.17.scss
new file mode 100644
index 0000000000..ce29a677f1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.17.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { width: 4em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.2.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.2.scss
new file mode 100644
index 0000000000..d9169cf13e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { text-indent: -3em; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.25.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.25.scss
new file mode 100644
index 0000000000..575d7393f2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.25.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { text-indent: -3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.3.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.3.scss
new file mode 100644
index 0000000000..44021e266f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.3.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { width: 1em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.5.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.5.scss
new file mode 100644
index 0000000000..0b02a652f9
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-003.5.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-003.htm */
+.style { width: 5em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.0.scss
new file mode 100644
index 0000000000..4fcfac5be6
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.0.scss
@@ -0,0 +1,17 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+
+
+body { font-size: 12px; }
+
+body > div, body > pre {
+ float: left; clear: left; margin: 1px; height: 2em;
+ border: medium solid;
+}
+
+span {
+ display: inline-block;
+ height: 1em;
+ width: 1em;
+}
+
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.1.scss
new file mode 100644
index 0000000000..a8cd2367c3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { text-indent: -3em; }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.10.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.10.scss
new file mode 100644
index 0000000000..549eca8142
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.10.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { width: 3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.16.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.16.scss
new file mode 100644
index 0000000000..d97bdc5805
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.16.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { width: 4em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.2.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.2.scss
new file mode 100644
index 0000000000..645265fcee
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.2.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { width: 1em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.24.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.24.scss
new file mode 100644
index 0000000000..a43261231e
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.24.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { text-indent: -3em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.4.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.4.scss
new file mode 100644
index 0000000000..60d30f9cdb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-intrinsic-004.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-intrinsic-004.htm */
+.style { width: 5em }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-percent-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-percent-001.0.scss
new file mode 100644
index 0000000000..2204bedfe4
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-percent-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-percent-001.htm */
+
+div { width: 500px; }
+p { width: 300px; text-indent: 10%; }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-indent-wrap-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-indent-wrap-001.0.scss
new file mode 100644
index 0000000000..fc5dab0d52
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-indent-wrap-001.0.scss
@@ -0,0 +1,5 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-indent-wrap-001.htm */
+
+p { text-indent: 100px }
+span { background: yellow }
+
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.0.scss
new file mode 100644
index 0000000000..515fa762c3
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-001.htm */
+.style { letter-spacing:2px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.1.scss
new file mode 100644
index 0000000000..69ff275066
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-001.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-001.htm */
+.style { text-transform:capitalize }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.0.scss
new file mode 100644
index 0000000000..4d744e17b1
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-002.htm */
+.style { letter-spacing:2px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.1.scss
new file mode 100644
index 0000000000..c6bb7e4bef
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-002.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-002.htm */
+.style { text-transform:capitalize }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.0.scss
new file mode 100644
index 0000000000..0ba48a86c0
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-003.htm */
+.style { letter-spacing:2px }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.1.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.1.scss
new file mode 100644
index 0000000000..e1cb8d6745
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.1.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-003.htm */
+.style { text-transform:capitalize }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.4.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.4.scss
new file mode 100644
index 0000000000..a0d1d9a606
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.4.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-003.htm */
+.style { text-transform:none }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.7.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.7.scss
new file mode 100644
index 0000000000..438a1e4be2
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-capitalize-003.7.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-capitalize-003.htm */
+.style { white-space:nowrap }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-lowercase-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-lowercase-001.0.scss
new file mode 100644
index 0000000000..fe6e97e39f
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-lowercase-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-lowercase-001.htm */
+.style { text-transform:lowercase }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-001.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-001.0.scss
new file mode 100644
index 0000000000..7dc1c293cb
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-001.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-uppercase-001.htm */
+.style { text-transform:uppercase }
diff --git a/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-002.0.scss b/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-002.0.scss
new file mode 100644
index 0000000000..c18eff8824
--- /dev/null
+++ b/theme-compiler/tests/resources/w3ctests/scss/text-transform-uppercase-002.0.scss
@@ -0,0 +1,2 @@
+/* Source: http://test.csswg.org/suites/css2.1/20110323/html4/text-transform-uppercase-002.htm */
+.style { text-transform:uppercase }
diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java
index 21edde0c17..6a5f8db73d 100644
--- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java
+++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java
@@ -28,8 +28,13 @@ import java.util.List;
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
+import org.w3c.css.sac.CSSException;
+import org.w3c.css.sac.CSSParseException;
import com.vaadin.sass.internal.ScssStylesheet;
+import com.vaadin.sass.internal.handler.SCSSDocumentHandler;
+import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.internal.handler.SCSSErrorHandler;
import com.vaadin.sass.testcases.scss.SassTestRunner.FactoryTest;
public abstract class AbstractDirectoryScanningSassTests {
@@ -78,19 +83,38 @@ public abstract class AbstractDirectoryScanningSassTests {
@FactoryTest
public void compareScssWithCss(String scssResourceName) throws Exception {
- String referenceCss;
File scssFile = getSassLangResourceFile(scssResourceName);
- File cssFile = getCssFile(scssFile);
- referenceCss = IOUtils.toString(new FileInputStream(cssFile));
- ScssStylesheet scssStylesheet = ScssStylesheet.get(scssFile
- .getCanonicalPath());
+
+ SCSSDocumentHandler documentHandler = new SCSSDocumentHandlerImpl();
+ SCSSErrorHandler errorHandler = new SCSSErrorHandler() {
+ @Override
+ public void error(CSSParseException arg0) throws CSSException {
+ super.error(arg0);
+ Assert.fail(arg0.getMessage());
+ }
+
+ @Override
+ public void fatalError(CSSParseException arg0) throws CSSException {
+ super.error(arg0);
+ Assert.fail(arg0.getMessage());
+ }
+ };
+
+ ScssStylesheet scssStylesheet = ScssStylesheet.get(
+ scssFile.getCanonicalPath(), null, documentHandler,
+ errorHandler);
scssStylesheet.compile();
String parsedCss = scssStylesheet.toString();
- String normalizedReference = normalize(referenceCss);
- String normalizedParsed = normalize(parsedCss);
- Assert.assertEquals("Original CSS and parsed CSS do not match for "
- + scssResourceName, normalizedReference, normalizedParsed);
+ if (getCssFile(scssFile) != null) {
+ String referenceCss = IOUtils.toString(new FileInputStream(
+ getCssFile(scssFile)));
+ String normalizedReference = normalize(referenceCss);
+ String normalizedParsed = normalize(parsedCss);
+
+ Assert.assertEquals("Original CSS and parsed CSS do not match for "
+ + scssResourceName, normalizedReference, normalizedParsed);
+ }
}
private String normalize(String css) {
@@ -120,7 +144,7 @@ public abstract class AbstractDirectoryScanningSassTests {
return new File(res.toURI());
}
- private File getCssFile(File scssFile) throws IOException {
+ protected File getCssFile(File scssFile) throws IOException {
return new File(scssFile.getCanonicalPath().replace("scss", "css"));
}
}
diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/W3ConformanceTests.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/W3ConformanceTests.java
new file mode 100644
index 0000000000..fcb8e9a70a
--- /dev/null
+++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/W3ConformanceTests.java
@@ -0,0 +1,241 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.sass.testcases.scss;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.junit.runner.RunWith;
+
+import com.vaadin.sass.testcases.scss.SassTestRunner.TestFactory;
+
+@RunWith(SassTestRunner.class)
+public class W3ConformanceTests extends AbstractDirectoryScanningSassTests {
+
+ @Override
+ protected URL getResourceURL(String path) {
+ return getResourceURLInternal(path);
+ }
+
+ private static URL getResourceURLInternal(String path) {
+ return AutomaticSassTests.class.getResource("/w3ctests" + path);
+ }
+
+ @TestFactory
+ public static Collection<String> getScssResourceNames()
+ throws URISyntaxException, IOException {
+ return getScssResourceNames(getResourceURLInternal(""));
+ }
+
+ @Override
+ protected File getCssFile(File scssFile) throws IOException {
+ /*
+ * We should really compare the result of unparse(parse(css)) to css,
+ * but the comparator routine is currently too primitive.
+ */
+ // return scssFile;
+
+ // no comparison step, just parse, in this test
+ return null;
+ }
+
+ /*
+ * Download W3C conformance tests for CSS 2.1 and CSS 3 (selectors),
+ * extracts all CSS (style tags, inline styles, and linked stylesheets),
+ * then tries to parse them. Since each CSS is valid SCSS, the parser should
+ * accept them. As these are browser tests, some are intentionally
+ * malformed, and must be excluded from the test suite.
+ */
+
+ public static void main(String[] args) throws Exception {
+ if (args.length < 1) {
+ System.err.println("Target directory not provided");
+ return;
+ }
+ File targetDir = new File(args[0]);
+ for (URI url : CSS21()) {
+ extractCSS(url, targetDir);
+ }
+ for (URI url : CSS3Selectors()) {
+ extractCSS(url, targetDir);
+ }
+
+ }
+
+ public static Collection<URI> CSS21() throws Exception {
+ /*
+ * Tests explicitly excluded are listed below---case by case motivation
+ * required!
+ */
+ final String[] excludelist = new String[] {
+ // Unsupported character encoding UTF-16
+ "http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-be-002.htm",
+ "http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-be-003.htm",
+ "http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-le-002.htm",
+ "http://test.csswg.org/suites/css2.1/20110323/html4/at-charset-utf16-le-003.htm",
+
+ // Font family name contains (Asian?) cryptoglyphs
+ "http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-010.htm",
+ "http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-011.htm",
+ "http://test.csswg.org/suites/css2.1/20110323/html4/font-family-name-015.htm",
+
+ // Contains syntactically illegal CSS
+ "http://test.csswg.org/suites/css2.1/20110323/html4/uri-013.htm",
+
+ // Missing semicolon on line 29
+ "http://test.csswg.org/suites/css2.1/20110323/html4/z-index-020.htm", };
+
+ // Note: W3C test reference files also not included!
+ return scrapeIndexForTests(
+ "http://test.csswg.org/suites/css2.1/20110323/html4/reftest-toc.html",
+ ".*[0-9][0-9][0-9][a-z]?\\.htm", Integer.MAX_VALUE,
+ new LinkedHashSet<URI>() {
+ {
+ for (String s : excludelist) {
+ add(new URI(s));
+ }
+ }
+ });
+ }
+
+ public static Collection<URI> CSS3Selectors() throws Exception {
+ /*
+ * Tests explicitly excluded are listed below---case by case motivation
+ * required!
+ */
+ final String[] excludelist = new String[] {
+ // Probable bug/limitation (filed as #12832)
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-15b.html",
+
+ // Probable bug/limitation (filed as #12833)
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-67.html",
+
+ // Probable bug/limitation (filed as #12834)
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-73.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-73b.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-74.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-74b.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-75.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-75b.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-76.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-76b.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-83.html",
+
+ // Probable bug/limitation (files as #12835)
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-154.html",
+
+ // Invalid CSS? sass-lang compiler fails
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-157.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-158.html",
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-183.html", };
+
+ return scrapeIndexForTests(
+ "http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/",
+ "css3-.*\\.html", Integer.MAX_VALUE, new LinkedHashSet<URI>() {
+ {
+ for (String s : excludelist) {
+ add(new URI(s));
+ }
+ }
+ });
+ }
+
+ /*
+ * Loads up to maxTest tests, excluding any URL in excludeUrls.
+ */
+ protected static Collection<URI> scrapeIndexForTests(String url,
+ String regexp, int maxTests, Collection<URI> excludeUrls)
+ throws Exception {
+
+ URI baseUrl = new URI(url);
+ Document doc = Jsoup.connect(url).timeout(10000).get();
+ Elements elems = doc.select(String.format("a[href~=%s]", regexp));
+ LinkedHashSet<URI> tests = new LinkedHashSet<URI>();
+ for (Element e : elems) {
+ URI testUrl = new URI(e.attr("href"));
+ if (!testUrl.isAbsolute()) {
+ testUrl = baseUrl.resolve(testUrl);
+ }
+ if (tests.size() < maxTests) {
+ if (!excludeUrls.contains(testUrl)) {
+ tests.add(testUrl);
+ }
+ } else {
+ break;
+ }
+ }
+
+ return tests;
+ }
+
+ public static void extractCSS(final URI url, File targetdir)
+ throws Exception {
+ /*
+ * For each test URL: 1) extract <style> tag contents 2) extract from
+ * <link rel="stylesheet"> files 3) extract inline style attributes from
+ * all elements and wrap the result in .style {}
+ */
+
+ Document doc = Jsoup.connect(url.toString()).timeout(20000).get();
+
+ List<String> tests = new ArrayList<String>();
+
+ for (Element e : doc.select("style[type=text/css]")) {
+ tests.add(e.data());
+ }
+
+ for (Element e : doc
+ .select("link[rel=stylesheet][href][type=text/css]")) {
+ URI cssUri = new URI(e.attr("href"));
+ if (!cssUri.isAbsolute()) {
+ cssUri = url.resolve(cssUri);
+ }
+ String encoding = doc.outputSettings().charset().name();
+ tests.add(IOUtils.toString(cssUri, encoding));
+ }
+
+ for (Element e : doc.select("*[style]")) {
+ tests.add(String.format(".style { %s }", e.attr("style")));
+ }
+
+ for (final String test : tests) {
+ targetdir.mkdirs();
+ String logfile = String.format("%s.%d.scss",
+ FilenameUtils.getBaseName(url.toString()),
+ tests.indexOf(test));
+ PrintStream dataLogger = new PrintStream(new File(targetdir,
+ logfile));
+
+ dataLogger.println("/* Source: " + url + " */");
+ dataLogger.println(test);
+
+ }
+ }
+}