function test_prefixResourceUrls() { $html = '<html><head></head><body>' . '<div>' . '<a id="a1" href="a1">a1</a>' . '</div>' . '<div class="sc-content-1">' . '<a id="a2" href="a2">a2</a>' . '</div>' . '<div class="sc-content">' . '<a id="a3" href="files/a3-sc123456789abcd.doc">a3</a>' . '<img id="img1" src="images/img1-sc123456789abcd-00.jpg" srcset="draft/images/img1-sc123456789abcd-00.jpg 1, img2.jpg 2"/>' . '</div>' . '<div class="sc-content sc-content-2">' . '<a id="a4" href="javascript:files/a4-sc123456789abcd.doc">a4</a>' . '<a id="a5" href="#images/a5-sc123456789abcd.doc">a5</a>' . '<a id="a6" href="https://files/a6-sc123456789abcd.doc">a6</a>' . '</div>' . '</body></html>'; $page = new Page($html); $page->prefixResourceUrls('p/'); $doc = phpQuery::newDocument((string) $page); $this->assertEquals('a1', phpQuery::pq('#a1', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('a2', phpQuery::pq('#a2', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('p/files/a3-sc123456789abcd.doc', phpQuery::pq('#a3', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('javascript:files/a4-sc123456789abcd.doc', phpQuery::pq('#a4', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('#images/a5-sc123456789abcd.doc', phpQuery::pq('#a5', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('https://files/a6-sc123456789abcd.doc', phpQuery::pq('#a6', $doc)->elements[0]->getAttribute('href')); $this->assertEquals('p/images/img1-sc123456789abcd-00.jpg', phpQuery::pq('#img1', $doc)->elements[0]->getAttribute('src')); $this->assertEquals('p/draft/images/img1-sc123456789abcd-00.jpg 1, img2.jpg 2', phpQuery::pq('#img1', $doc)->elements[0]->getAttribute('srcset')); }
protected function decorateDraft() { $draftPagePaths = $this->listDraftPagePaths(); foreach ($draftPagePaths as $pagePath) { $page = new Page($this->fs->read($pagePath)); $page->ensurePageId(); $page->normalizeContainerNames(); $page->prefixResourceUrls($this->draftBaseUrl()); $this->fs->update($pagePath, (string) $page); } }