| Index: Source/core/html/canvas/CanvasRenderingContext2DTest.cpp
|
| diff --git a/Source/core/html/canvas/CanvasRenderingContext2DTest.cpp b/Source/core/html/canvas/CanvasRenderingContext2DTest.cpp
|
| index 80399403e728073132bc9a8bd82d88a492b20ebc..5a70dd52af7352490e3c6da5b05d7feaf4294612 100644
|
| --- a/Source/core/html/canvas/CanvasRenderingContext2DTest.cpp
|
| +++ b/Source/core/html/canvas/CanvasRenderingContext2DTest.cpp
|
| @@ -85,18 +85,40 @@ private:
|
| RefPtrWillBePersistent<HTMLDocument> m_document;
|
| RefPtrWillBePersistent<HTMLCanvasElement> m_canvasElement;
|
|
|
| + class WrapGradients final : public NoBaseWillBeGarbageCollectedFinalized<WrapGradients> {
|
| + public:
|
| + static PassOwnPtrWillBeRawPtr<WrapGradients> create()
|
| + {
|
| + return adoptPtrWillBeNoop(new WrapGradients);
|
| + }
|
| +
|
| + DEFINE_INLINE_TRACE()
|
| + {
|
| + visitor->trace(m_opaqueGradient);
|
| + visitor->trace(m_alphaGradient);
|
| + }
|
| +
|
| + StringOrCanvasGradientOrCanvasPattern m_opaqueGradient;
|
| + StringOrCanvasGradientOrCanvasPattern m_alphaGradient;
|
| + };
|
| +
|
| + // TODO(Oilpan): avoid tedious part-object wrapper by supporting on-heap ::testing::Tests.
|
| + OwnPtrWillBePersistent<WrapGradients> m_wrapGradients;
|
| +
|
| protected:
|
| // Pre-canned objects for testing
|
| Persistent<ImageData> m_fullImageData;
|
| Persistent<ImageData> m_partialImageData;
|
| FakeImageSource m_opaqueBitmap;
|
| FakeImageSource m_alphaBitmap;
|
| - StringOrCanvasGradientOrCanvasPattern m_opaqueGradient;
|
| - StringOrCanvasGradientOrCanvasPattern m_alphaGradient;
|
| +
|
| + StringOrCanvasGradientOrCanvasPattern& opaqueGradient() { return m_wrapGradients->m_opaqueGradient; }
|
| + StringOrCanvasGradientOrCanvasPattern& alphaGradient() { return m_wrapGradients->m_alphaGradient; }
|
| };
|
|
|
| CanvasRenderingContext2DTest::CanvasRenderingContext2DTest()
|
| - : m_opaqueBitmap(IntSize(10, 10), OpaqueBitmap)
|
| + : m_wrapGradients(WrapGradients::create())
|
| + , m_opaqueBitmap(IntSize(10, 10), OpaqueBitmap)
|
| , m_alphaBitmap(IntSize(10, 10), TransparentBitmap)
|
| { }
|
|
|
| @@ -128,7 +150,7 @@ void CanvasRenderingContext2DTest::SetUp()
|
| EXPECT_FALSE(exceptionState.hadException());
|
| opaqueGradient->addColorStop(1, String("blue"), exceptionState);
|
| EXPECT_FALSE(exceptionState.hadException());
|
| - m_opaqueGradient.setCanvasGradient(opaqueGradient);
|
| + this->opaqueGradient().setCanvasGradient(opaqueGradient);
|
|
|
| RefPtrWillBeRawPtr<CanvasGradient> alphaGradient = CanvasGradient::create(FloatPoint(0, 0), FloatPoint(10, 0));
|
| alphaGradient->addColorStop(0, String("green"), exceptionState);
|
| @@ -136,7 +158,7 @@ void CanvasRenderingContext2DTest::SetUp()
|
| alphaGradient->addColorStop(1, String("rgba(0, 0, 255, 0.5)"), exceptionState);
|
| EXPECT_FALSE(exceptionState.hadException());
|
| StringOrCanvasGradientOrCanvasPattern wrappedAlphaGradient;
|
| - m_alphaGradient.setCanvasGradient(alphaGradient);
|
| + this->alphaGradient().setCanvasGradient(alphaGradient);
|
| }
|
|
|
| //============================================================================
|
| @@ -152,7 +174,7 @@ public:
|
|
|
| //============================================================================
|
|
|
| -class MockCanvasObserver : public NoBaseWillBeGarbageCollectedFinalized<MockCanvasObserver>, public CanvasObserver {
|
| +class MockCanvasObserver final : public NoBaseWillBeGarbageCollectedFinalized<MockCanvasObserver>, public CanvasObserver {
|
| WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockCanvasObserver);
|
| public:
|
| static PassOwnPtrWillBeRawPtr<MockCanvasObserver> create()
|
| @@ -160,6 +182,12 @@ public:
|
| return adoptPtrWillBeNoop(new MockCanvasObserver);
|
| }
|
|
|
| + DEFINE_INLINE_VIRTUAL_TRACE()
|
| + {
|
| + CanvasObserver::trace(visitor);
|
| + }
|
| +
|
| +
|
| virtual ~MockCanvasObserver() { }
|
| MOCK_METHOD2(canvasChanged, void(HTMLCanvasElement*, const FloatRect&));
|
| MOCK_METHOD1(canvasResized, void(HTMLCanvasElement*));
|
| @@ -261,9 +289,9 @@ TEST_F(CanvasRenderingContext2DTest, detectOverdrawWithFillRect)
|
| TEST_OVERDRAW_1(0, fillRect(0, 0, 9, 9));
|
| TEST_OVERDRAW_2(0, translate(1, 1), fillRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_2(1, translate(1, 1), fillRect(-1, -1, 10, 10));
|
| - TEST_OVERDRAW_2(1, setFillStyle(m_opaqueGradient), fillRect(0, 0, 10, 10));
|
| - TEST_OVERDRAW_2(0, setFillStyle(m_alphaGradient), fillRect(0, 0, 10, 10));
|
| - TEST_OVERDRAW_3(0, setGlobalAlpha(0.5), setFillStyle(m_opaqueGradient), fillRect(0, 0, 10, 10));
|
| + TEST_OVERDRAW_2(1, setFillStyle(opaqueGradient()), fillRect(0, 0, 10, 10));
|
| + TEST_OVERDRAW_2(0, setFillStyle(alphaGradient()), fillRect(0, 0, 10, 10));
|
| + TEST_OVERDRAW_3(0, setGlobalAlpha(0.5), setFillStyle(opaqueGradient()), fillRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_3(1, setGlobalAlpha(0.5f), setGlobalCompositeOperation(String("copy")), fillRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_2(1, setGlobalCompositeOperation(String("copy")), fillRect(0, 0, 9, 9));
|
| TEST_OVERDRAW_3(0, rect(0, 0, 5, 5), clip(), fillRect(0, 0, 10, 10));
|
| @@ -277,7 +305,7 @@ TEST_F(CanvasRenderingContext2DTest, detectOverdrawWithClearRect)
|
| TEST_OVERDRAW_1(1, clearRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_1(0, clearRect(0, 0, 9, 9));
|
| TEST_OVERDRAW_2(1, setGlobalAlpha(0.5f), clearRect(0, 0, 10, 10));
|
| - TEST_OVERDRAW_2(1, setFillStyle(m_alphaGradient), clearRect(0, 0, 10, 10));
|
| + TEST_OVERDRAW_2(1, setFillStyle(alphaGradient()), clearRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_2(0, translate(1, 1), clearRect(0, 0, 10, 10));
|
| TEST_OVERDRAW_2(1, translate(1, 1), clearRect(-1, -1, 10, 10));
|
| TEST_OVERDRAW_2(1, setGlobalCompositeOperation(String("destination-in")), clearRect(0, 0, 10, 10)); // composite op ignored
|
| @@ -309,9 +337,9 @@ TEST_F(CanvasRenderingContext2DTest, detectOverdrawWithDrawImage)
|
| EXPECT_FALSE(exceptionState.hadException());
|
| TEST_OVERDRAW_2(0, translate(-1, 0), drawImage(&m_opaqueBitmap, 0, 0, 10, 10, 0, 0, 10, 10, exceptionState));
|
| EXPECT_FALSE(exceptionState.hadException());
|
| - TEST_OVERDRAW_2(0, setFillStyle(m_opaqueGradient), drawImage(&m_alphaBitmap, 0, 0, 10, 10, 0, 0, 10, 10, exceptionState)); // fillStyle ignored by drawImage
|
| + TEST_OVERDRAW_2(0, setFillStyle(opaqueGradient()), drawImage(&m_alphaBitmap, 0, 0, 10, 10, 0, 0, 10, 10, exceptionState)); // fillStyle ignored by drawImage
|
| EXPECT_FALSE(exceptionState.hadException());
|
| - TEST_OVERDRAW_2(1, setFillStyle(m_alphaGradient), drawImage(&m_opaqueBitmap, 0, 0, 10, 10, 0, 0, 10, 10, exceptionState)); // fillStyle ignored by drawImage
|
| + TEST_OVERDRAW_2(1, setFillStyle(alphaGradient()), drawImage(&m_opaqueBitmap, 0, 0, 10, 10, 0, 0, 10, 10, exceptionState)); // fillStyle ignored by drawImage
|
| EXPECT_FALSE(exceptionState.hadException());
|
| TEST_OVERDRAW_2(1, setGlobalCompositeOperation(String("copy")), drawImage(&m_opaqueBitmap, 0, 0, 10, 10, 1, 0, 10, 10, exceptionState));
|
| EXPECT_FALSE(exceptionState.hadException());
|
|
|