setValue('
Simple Content
'); $editor->saveInto($sitetree); $this->assertEquals('Simple Content
', $sitetree->Content, 'Attributes are preserved.'); $editor->setValue('Unclosed Tag'); $editor->saveInto($sitetree); $this->assertEquals('
Unclosed Tag
', $sitetree->Content, 'Unclosed tags are closed.'); } public function testNullSaving() { $sitetree = new SiteTree(); $editor = new HtmlEditorField('Content'); $editor->setValue(null); $editor->saveInto($sitetree); $this->assertEquals('', $sitetree->Content, "Doesn't choke on empty/null values."); } public function testLinkTracking() { $sitetree = $this->objFromFixture('SiteTree', 'home'); $editor = new HtmlEditorField('Content'); $aboutID = $this->idFromFixture('SiteTree', 'about'); $contactID = $this->idFromFixture('SiteTree', 'contact'); $editor->setValue("Example Link"); $editor->saveInto($sitetree); $this->assertEquals(array($aboutID => $aboutID), $sitetree->LinkTracking()->getIdList(), 'Basic link tracking works.'); $editor->setValue ( "" ); $editor->saveInto($sitetree); $this->assertEquals ( array($aboutID => $aboutID, $contactID => $contactID), $sitetree->LinkTracking()->getIdList(), 'Tracking works on multiple links' ); $editor->setValue(null); $editor->saveInto($sitetree); $this->assertEquals(array(), $sitetree->LinkTracking()->getIdList(), 'Link tracking is removed when links are.'); } public function testFileLinkTracking() { $sitetree = $this->objFromFixture('SiteTree', 'home'); $editor = new HtmlEditorField('Content'); $fileID = $this->idFromFixture('File', 'example_file'); $editor->setValue('Example File'); $editor->saveInto($sitetree); $this->assertEquals ( array($fileID => $fileID), $sitetree->ImageTracking()->getIDList(), 'Links to assets are tracked.' ); $editor->setValue(null); $editor->saveInto($sitetree); $this->assertEquals(array(), $sitetree->ImageTracking()->getIdList(), 'Asset tracking is removed with links.'); } public function testImageInsertion() { $sitetree = new SiteTree(); $editor = new HtmlEditorField('Content'); $editor->setValue(''); $editor->saveInto($sitetree); $xml = new SimpleXMLElement($sitetree->Content); $this->assertNotNull($xml['alt'], 'Alt tags are added by default.'); $this->assertNotNull($xml['title'], 'Title tags are added by default.'); $editor->setValue(''); $editor->saveInto($sitetree); $xml = new SimpleXMLElement($sitetree->Content); $this->assertNotNull('foo', $xml['alt'], 'Alt tags are preserved.'); $this->assertNotNull('bar', $xml['title'], 'Title tags are preserved.'); } public function testImageTracking() { $sitetree = $this->objFromFixture('SiteTree', 'home'); $editor = new HtmlEditorField('Content'); $fileID = $this->idFromFixture('Image', 'example_image'); $editor->setValue(''); $editor->saveInto($sitetree); $this->assertEquals ( array($fileID => $fileID), $sitetree->ImageTracking()->getIDList(), 'Inserted images are tracked.' ); $editor->setValue(null); $editor->saveInto($sitetree); $this->assertEquals ( array(), $sitetree->ImageTracking()->getIDList(), 'Tracked images are deleted when removed.' ); } public function testMultiLineSaving() { $sitetree = $this->objFromFixture('SiteTree', 'home'); $editor = new HtmlEditorField('Content'); $editor->setValue("First Paragraph
\n\nSecond Paragraph
"); $editor->saveInto($sitetree); $this->assertEquals("First Paragraph
\n\nSecond Paragraph
", $sitetree->Content); } public function testSavingLinksWithoutHref() { $sitetree = $this->objFromFixture('SiteTree', 'home'); $editor = new HtmlEditorField('Content'); $editor->setValue(''); $editor->saveInto($sitetree); $this->assertEquals ( '', $sitetree->Content, 'Saving a link without a href attribute works' ); } }