示例#1
0
TEST_F(CSSPreloadScannerTest, ScanFromResourceClient) {
  std::unique_ptr<DummyPageHolder> dummyPageHolder =
      DummyPageHolder::create(IntSize(500, 500));
  dummyPageHolder->document().settings()->setCSSExternalScannerNoPreload(true);

  MockHTMLResourcePreloader* preloader =
      new MockHTMLResourcePreloader(dummyPageHolder->document());

  KURL url(ParsedURLString, "http://127.0.0.1/foo.css");
  CSSStyleSheetResource* resource =
      CSSStyleSheetResource::createForTest(ResourceRequest(url), "utf-8");
  resource->setStatus(Resource::Pending);

  PreloadRecordingCSSPreloaderResourceClient* resourceClient =
      new PreloadRecordingCSSPreloaderResourceClient(resource, preloader);

  const char* data = "@import url('http://127.0.0.1/preload.css');";
  resource->appendData(data, strlen(data));

  EXPECT_EQ(Resource::PreloadNotReferenced, resource->getPreloadResult());
  EXPECT_EQ(1u, resourceClient->m_preloadUrls.size());
  EXPECT_EQ("http://127.0.0.1/preload.css",
            resourceClient->m_preloadUrls.front());
}