Beispiel #1
0
 /**
  * Tests attributes manipulation
  *
  * @covers CDomNode
  * @covers CDomList
  * @covers CDomNodesList
  * @covers CDomAttribute
  * @covers CDomAttributesList
  */
 function testAttributes()
 {
     $dom = CDom::fromString('<div>');
     $div = $dom->firstChild;
     $val = $div->attr('class');
     $this->assertEmpty($val);
     $div->attr('class', 'foo');
     $val = $div->attr('Class');
     $this->assertEquals('foo', (string) $val);
     $this->assertEquals('<div class="foo"></div>', $dom->html());
     $div->selfClosed = true;
     $this->assertEquals('<div class="foo" />', $dom->html());
     $div->attr('class', 'bar');
     $val = $div->attr('claSS');
     $this->assertEquals('bar', (string) $val);
     $this->assertEquals('<div class="bar" />', $dom->html());
     $this->assertEquals(' class="bar"', $dom->firstChild->attributes->text());
     $res = $div->hasAttribute('id');
     $this->assertFalse($res);
     $res = isset($div->attributes->id);
     $this->assertFalse($res);
     $res = $div->hasAttribute('class');
     $this->assertTrue($res);
     $res = isset($div->attributes->class);
     $this->assertTrue($res);
     $div->removeAttr('class');
     $res = $div->hasAttribute('class');
     $this->assertFalse($res);
     $res = isset($div->attributes->class);
     $this->assertFalse($res);
     $this->assertEquals('<div />', $div->outerHtml());
     $div->attributes->class = 'bar';
     $this->assertTrue(isset($div->attributes->class));
     $this->assertEquals('bar', (string) $div->attributes->class);
     $this->assertEquals('bar', (string) $div->class);
     unset($div->attributes->class);
     $this->assertFalse(isset($div->attributes->class));
     $div->class = 'zoo';
     $this->assertEquals('zoo', (string) $div->attr('class'));
     unset($div->attributes['class']);
     $this->assertFalse($div->attributes->has('class'));
     $div->attributes['class'] = 'test';
     $this->assertEquals('test', (string) $div->class);
     $val = $div->attr('foobar');
     $this->assertEmpty($val);
     $orig = 'DisaBled';
     $low = 'disabled';
     $val = 'Yeah';
     $attr = new CDomAttribute($orig, $val);
     $this->assertEquals($low, $attr->name);
     $this->assertEquals($orig, $attr->nameReal);
     $this->assertEquals($val, (string) $attr);
     $this->assertEquals($val, $attr());
     $attr(true);
     $this->assertEquals($low, $attr->text());
     $this->assertEquals($low, $attr->html());
     $dom->clear();
     $dom = CDom::fromString('<div disabled>');
     $dom->isXml = true;
     $this->assertEquals('<div disabled="disabled"></div>', $dom->html());
     $dom->clear();
     $list = new CDomNodesList();
     $this->assertFalse($list->hasAttribute('class'));
     $list->attr('class', 'zzz');
     $this->assertFalse($list->hasAttribute('class'));
     $list->add(new CDomNodeTag('p'));
     $this->assertFalse($list->hasAttribute('class'));
     $list->attr('class', 'zzz');
     $this->assertTrue($list->hasAttribute('class'));
     $list->removeAttr('class');
     $this->assertFalse($list->hasAttribute('class'));
 }