summaryrefslogtreecommitdiffstats
path: root/cc/resource_update_controller_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/resource_update_controller_unittest.cc')
-rw-r--r--cc/resource_update_controller_unittest.cc33
1 files changed, 30 insertions, 3 deletions
diff --git a/cc/resource_update_controller_unittest.cc b/cc/resource_update_controller_unittest.cc
index ac0b4cc7..7d68629 100644
--- a/cc/resource_update_controller_unittest.cc
+++ b/cc/resource_update_controller_unittest.cc
@@ -12,6 +12,7 @@
#include "cc/test/scheduler_test_common.h"
#include "cc/test/tiled_layer_test_common.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/khronos/GLES2/gl2ext.h"
using namespace cc;
using namespace WebKit;
@@ -52,6 +53,8 @@ public:
return WebString("");
}
+ virtual void getQueryObjectuivEXT(WebGLId, WGC3Denum, WGC3Duint*);
+
private:
ResourceUpdateControllerTest* m_test;
bool m_supportShallowFlush;
@@ -71,6 +74,7 @@ public:
, m_numDanglingUploads(0)
, m_numTotalUploads(0)
, m_numTotalFlushes(0)
+ , m_queryResultsAvailable(0)
{
}
@@ -105,6 +109,15 @@ public:
m_numTotalUploads++;
}
+ bool isQueryResultAvailable()
+ {
+ if (!m_queryResultsAvailable)
+ return false;
+
+ m_queryResultsAvailable--;
+ return true;
+ }
+
protected:
virtual void SetUp()
{
@@ -177,6 +190,11 @@ protected:
updateController->finalize();
}
+ void makeQueryResultAvailable()
+ {
+ m_queryResultsAvailable++;
+ }
+
protected:
// Classes required to interact and test the ResourceUpdateController
scoped_ptr<GraphicsContext> m_context;
@@ -185,6 +203,7 @@ protected:
scoped_ptr<PrioritizedTexture> m_textures[4];
scoped_ptr<PrioritizedTextureManager> m_textureManager;
SkBitmap m_bitmap;
+ int m_queryResultsAvailable;
// Properties / expectations of this test
int m_fullUploadCountExpected;
@@ -222,6 +241,14 @@ void WebGraphicsContext3DForUploadTest::texSubImage2D(WGC3Denum target,
m_test->onUpload();
}
+void WebGraphicsContext3DForUploadTest::getQueryObjectuivEXT(
+ WebGLId,
+ WGC3Denum pname,
+ WGC3Duint* params) {
+ if (pname == GL_QUERY_RESULT_AVAILABLE_EXT)
+ *params = m_test->isQueryResultAvailable();
+}
+
// ZERO UPLOADS TESTS
TEST_F(ResourceUpdateControllerTest, ZeroUploads)
{
@@ -381,10 +408,12 @@ TEST_F(ResourceUpdateControllerTest, UpdateMoreTextures)
// Only enough time for 1 update.
controller->performMoreUpdates(
controller->now() + base::TimeDelta::FromMilliseconds(120));
- runPendingTask(&thread, controller.get());
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_EQ(1, m_numTotalUploads);
+ // Complete one upload.
+ makeQueryResultAvailable();
+
controller->setUpdateMoreTexturesTime(
base::TimeDelta::FromMilliseconds(100));
controller->setUpdateMoreTexturesSize(1);
@@ -392,7 +421,6 @@ TEST_F(ResourceUpdateControllerTest, UpdateMoreTextures)
controller->performMoreUpdates(
controller->now() + base::TimeDelta::FromMilliseconds(220));
runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_TRUE(client.readyToFinalizeCalled());
EXPECT_EQ(3, m_numTotalUploads);
@@ -420,7 +448,6 @@ TEST_F(ResourceUpdateControllerTest, NoMoreUpdates)
controller->performMoreUpdates(
controller->now() + base::TimeDelta::FromMilliseconds(310));
runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_TRUE(client.readyToFinalizeCalled());
EXPECT_EQ(2, m_numTotalUploads);