TEST_F(ImageBitmapTest, ImageResourceConsistency) { const ImageBitmapOptions defaultOptions; HTMLImageElement* imageElement = HTMLImageElement::create(*Document::create()); ImageResource* image = ImageResource::create(StaticBitmapImage::create(m_image).get()); imageElement->setImageResource(image); ImageBitmap* imageBitmapNoCrop = ImageBitmap::create(imageElement, IntRect(0, 0, m_image->width(), m_image->height()), &(imageElement->document()), defaultOptions); ImageBitmap* imageBitmapInteriorCrop = ImageBitmap::create(imageElement, IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width() / 2, m_image->height() / 2), &(imageElement->document()), defaultOptions); ImageBitmap* imageBitmapExteriorCrop = ImageBitmap::create(imageElement, IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->width(), m_image->height()), &(imageElement->document()), defaultOptions); ImageBitmap* imageBitmapOutsideCrop = ImageBitmap::create(imageElement, IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_image->height()), &(imageElement->document()), defaultOptions); ASSERT_EQ(imageBitmapNoCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->getImage()->imageForCurrentFrame()); ASSERT_NE(imageBitmapInteriorCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->getImage()->imageForCurrentFrame()); ASSERT_NE(imageBitmapExteriorCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->getImage()->imageForCurrentFrame()); StaticBitmapImage* emptyImage = imageBitmapOutsideCrop->bitmapImage(); ASSERT_NE(emptyImage->imageForCurrentFrame(), imageElement->cachedImage()->getImage()->imageForCurrentFrame()); }
TEST_F(ImageBitmapTest, ImageResourceConsistency) { RefPtrWillBeRawPtr<HTMLImageElement> imageElement = HTMLImageElement::create(*Document::create().get()); imageElement->setImageResource(new ImageResource(StaticBitmapImage::create(m_image).get())); RefPtrWillBeRawPtr<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imageElement.get(), IntRect(0, 0, m_image->width(), m_image->height())); RefPtrWillBeRawPtr<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::create(imageElement.get(), IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width() / 2, m_image->height() / 2)); RefPtrWillBeRawPtr<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::create(imageElement.get(), IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->width(), m_image->height())); RefPtrWillBeRawPtr<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create(imageElement.get(), IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_image->height())); ASSERT_EQ(imageBitmapNoCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->image()->imageForCurrentFrame()); ASSERT_NE(imageBitmapInteriorCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->image()->imageForCurrentFrame()); ASSERT_NE(imageBitmapExteriorCrop->bitmapImage()->imageForCurrentFrame(), imageElement->cachedImage()->image()->imageForCurrentFrame()); StaticBitmapImage* emptyImage = imageBitmapOutsideCrop->bitmapImage(); ASSERT_NE(emptyImage->imageForCurrentFrame(), imageElement->cachedImage()->image()->imageForCurrentFrame()); }