TEST_F(ImageFrameGeneratorTest, incompleteBitmapCopied) { setFrameStatus(ImageFrame::FramePartial); const ScaledImageFragment* tempImage= m_generator->decodeAndScale(fullSize()); EXPECT_FALSE(tempImage->isComplete()); EXPECT_EQ(1, m_frameBufferRequestCount); ImageDecoder* tempDecoder = 0; EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), fullSize(), &tempDecoder)); ASSERT_TRUE(tempDecoder); EXPECT_NE(tempDecoder->frameBufferAtIndex(0)->getSkBitmap().getPixels(), tempImage->bitmap().getPixels()); ImageDecodingStore::instance()->unlockCache(m_generator.get(), tempImage); ImageDecodingStore::instance()->unlockDecoder(m_generator.get(), tempDecoder); }
TEST_F(ImageFrameGeneratorTest, frameHasAlpha) { setFrameStatus(ImageFrame::FramePartial); char buffer[100 * 100 * 4]; m_generator->decodeAndScale(0, imageInfo(), buffer, 100 * 4); EXPECT_TRUE(m_generator->hasAlpha(0)); EXPECT_EQ(1, m_decodeRequestCount); ImageDecoder* tempDecoder = 0; EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), fullSize(), &tempDecoder)); ASSERT_TRUE(tempDecoder); tempDecoder->frameBufferAtIndex(0)->setHasAlpha(false); ImageDecodingStore::instance().unlockDecoder(m_generator.get(), tempDecoder); EXPECT_EQ(2, m_decodeRequestCount); setFrameStatus(ImageFrame::FrameComplete); m_generator->decodeAndScale(0, imageInfo(), buffer, 100 * 4); EXPECT_EQ(3, m_decodeRequestCount); EXPECT_FALSE(m_generator->hasAlpha(0)); }