function testParseStyleAttribute() { $el = new EditLib(); /* * empty style -> empty array */ $style = ''; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(0, count($parsed)); /* * delimiters only -> empty array */ $style = ' ; ; '; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(0, count($parsed)); /* * examples, no shortand lists */ $style = 'unknown-list:rgb(1,2,3) url(background.gif);unknown-size:12;'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(2, count($parsed)); $this->assertTrue(isset($parsed['unknown-list'])); $this->assertEquals('rgb(1,2,3) url(background.gif)', $parsed['unknown-list']); $this->assertTrue(isset($parsed['unknown-size'])); $this->assertEquals(12, $parsed['unknown-size']); $style = 'unknown-list:rgb(1,2,3) url(background.gif);unknown-size:12'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(2, count($parsed)); $this->assertTrue(isset($parsed['unknown-list'])); $this->assertEquals('rgb(1,2,3) url(background.gif)', $parsed['unknown-list']); $this->assertTrue(isset($parsed['unknown-size'])); $this->assertEquals(12, $parsed['unknown-size']); $style = ' unknown-list : rgb( 1 , 2 , 3 ) url( background.gif ) ; unknown-size: 12 ; '; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(2, count($parsed)); $this->assertTrue(isset($parsed['unknown-list'])); $this->assertEquals('rgb( 1 , 2 , 3 ) url( background.gif )', $parsed['unknown-list']); $this->assertTrue(isset($parsed['unknown-size'])); $this->assertEquals(12, $parsed['unknown-size']); /* * examples with shorthand list 'background' */ $style = 'background-color:#FF0000'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('#FF0000', $parsed['background-color']); $style = 'background:#FF0000'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('#FF0000', $parsed['background-color']); $style = 'background:rgb(0, 0, 0);'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('rgb(0, 0, 0)', $parsed['background-color']); $style = 'background: rgb(0, 255, 0); background-color:rgb(255, 0, 0);'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('rgb(255, 0, 0)', $parsed['background-color']); $style = 'background-color:rgb(255, 0, 0); background: rgb(0, 255, 0);'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('rgb(0, 255, 0)', $parsed['background-color']); $style = 'background-color:rgb(255, 0, 0); background: rgb(0, 255, 0) #0000FF;'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(1, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('#0000FF', $parsed['background-color']); $style = 'background-color:rgb(255, 0, 0); background: rgb(0, 255, 0) unknown1 #0000FF unknown2;'; $parsed = array(); $el->parseStyleAttribute($style, $parsed); $this->assertEquals(2, count($parsed)); $this->assertTrue(isset($parsed['background-color'])); $this->assertEquals('#0000FF', $parsed['background-color']); $this->assertTrue(isset($parsed['background'])); $this->assertEquals('unknown1 unknown2', $parsed['background']); }