1<?php
2
3class TestCSSParseAtRules extends GenericTest {
4  function testCSSParseAtRulesSimple() {
5    $pipeline =& PipelineFactory::create_default_pipeline('utf-8', 'test.pdf');
6    $new_css_content =& parse_css_atpage_rules('body { background-color: green; } @page { background-color: red; } #test { border: none; }', $pipeline);
7
8    $this->assertEqual($new_css_content, 'body { background-color: green; } #test { border: none; }');
9
10    $color =& $pipeline->_page_at_rules[CSS_PAGE_SELECTOR_ALL][0]->css->getPropertyValue(CSS_BACKGROUND_COLOR);
11    $this->assertNotNull($color);
12    $this->assertEqual($color->r, 1);
13    $this->assertEqual($color->g, 0);
14    $this->assertEqual($color->b, 0);
15  }
16
17  function testCSSParseAtRulesNested() {
18    $pipeline =& PipelineFactory::create_default_pipeline('utf-8', 'test.pdf');
19    $new_css_content =& parse_css_atpage_rules('body { background-color: green; } @page { @top-left { background-color: lime; } } #test { border: none; }', $pipeline);
20
21    $this->assertEqual($new_css_content, 'body { background-color: green; } #test { border: none; }');
22
23    $color =& $pipeline->_page_at_rules[CSS_PAGE_SELECTOR_ALL][0]->margin_boxes[CSS_MARGIN_BOX_SELECTOR_TOP_LEFT]->css->body->getPropertyValue(CSS_BACKGROUND_COLOR);
24    $this->assertNotNull($color);
25    $this->assertEqual($color->r, 0);
26    $this->assertEqual($color->g, 1);
27    $this->assertEqual($color->b, 0);
28  }
29
30  function testCSSParseAtRulesNestedContent() {
31    $pipeline =& PipelineFactory::create_default_pipeline('utf-8', 'test.pdf');
32    $new_css_content =& parse_css_atpage_rules('body { background-color: green; } @page { @top-left { content: "TEXT"; } } #test { border: none; }', $pipeline);
33
34    $this->assertEqual($new_css_content, 'body { background-color: green; } #test { border: none; }');
35
36    $content =& $pipeline->_page_at_rules[CSS_PAGE_SELECTOR_ALL][0]->margin_boxes[CSS_MARGIN_BOX_SELECTOR_TOP_LEFT]->css->body->getPropertyValue(CSS_CONTENT);
37    $this->assertNotNull($content);
38    $this->assertEqual($content->render(new CSSCounterCollection()), "TEXT");
39  }
40}
41
42?>