本文整理汇总了C++中ImageResource::hasClientsOrObservers方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageResource::hasClientsOrObservers方法的具体用法?C++ ImageResource::hasClientsOrObservers怎么用?C++ ImageResource::hasClientsOrObservers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageResource
的用法示例。
在下文中一共展示了ImageResource::hasClientsOrObservers方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MockImageResourceClient
TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients)
{
ImageResource* cachedImage = ImageResource::create(ResourceRequest());
cachedImage->setStatus(Resource::Pending);
Persistent<MockImageResourceClient> client = new MockImageResourceClient(cachedImage);
// Send the image response.
cachedImage->responseReceived(ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, nullAtom, String()), nullptr);
Vector<unsigned char> jpeg = jpegImage();
cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.size(), nullAtom, String()), nullptr);
cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.size());
cachedImage->finish();
ASSERT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
ASSERT_TRUE(client->notifyFinishedCalled());
// The prune comes when the ImageResource still has clients. The image should not be deleted.
cachedImage->prune();
ASSERT_TRUE(cachedImage->hasClientsOrObservers());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
// The ImageResource no longer has clients. The image should be deleted by prune.
client->removeAsClient();
cachedImage->prune();
ASSERT_FALSE(cachedImage->hasClientsOrObservers());
ASSERT_FALSE(cachedImage->hasImage());
ASSERT_TRUE(cachedImage->getImage()->isNull());
}
示例2: url
TEST(ImageResourceTest, AddClientAfterPrune)
{
KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
// Adds a ResourceClient but not ImageResourceObserver.
Persistent<MockResourceClient> client1 = new MockResourceClient(imageResource);
Vector<unsigned char> jpeg = jpegImage();
ResourceResponse response;
response.setURL(url);
response.setHTTPStatusCode(200);
response.setMimeType("image/jpeg");
imageResource->responseReceived(response, nullptr);
imageResource->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.size());
imageResource->finish();
EXPECT_FALSE(imageResource->errorOccurred());
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(1, imageResource->getImage()->width());
EXPECT_EQ(1, imageResource->getImage()->height());
EXPECT_TRUE(client1->notifyFinishedCalled());
client1->removeAsClient();
EXPECT_FALSE(imageResource->hasClientsOrObservers());
imageResource->prune();
EXPECT_FALSE(imageResource->hasImage());
// Re-adds a ResourceClient but not ImageResourceObserver.
Persistent<MockResourceClient> client2 = new MockResourceClient(imageResource);
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(1, imageResource->getImage()->width());
EXPECT_EQ(1, imageResource->getImage()->height());
EXPECT_TRUE(client2->notifyFinishedCalled());
}