Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / compositor / software_browser_compositor_output_surface_unittest.cc
index 9bc2a01..904fca2 100644 (file)
@@ -4,22 +4,22 @@
 
 #include "base/message_loop/message_loop.h"
 #include "cc/output/compositor_frame.h"
+#include "cc/test/fake_output_surface_client.h"
 #include "content/browser/compositor/browser_compositor_output_surface_proxy.h"
 #include "content/browser/compositor/software_browser_compositor_output_surface.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/compositor/compositor.h"
 #include "ui/compositor/test/context_factories_for_test.h"
 #include "ui/gfx/vsync_provider.h"
-#include "ui/gl/gl_implementation.h"
 
 namespace {
 
 class FakeVSyncProvider : public gfx::VSyncProvider {
  public:
   FakeVSyncProvider() : call_count_(0) {}
-  virtual ~FakeVSyncProvider() {}
+  ~FakeVSyncProvider() override {}
 
-  virtual void GetVSyncParameters(const UpdateVSyncCallback& callback)
-      OVERRIDE {
+  void GetVSyncParameters(const UpdateVSyncCallback& callback) override {
     callback.Run(timebase_, interval_);
     call_count_++;
   }
@@ -41,9 +41,9 @@ class FakeVSyncProvider : public gfx::VSyncProvider {
 class FakeSoftwareOutputDevice : public cc::SoftwareOutputDevice {
  public:
   FakeSoftwareOutputDevice() : vsync_provider_(new FakeVSyncProvider()) {}
-  virtual ~FakeSoftwareOutputDevice() {}
+  ~FakeSoftwareOutputDevice() override {}
 
-  virtual gfx::VSyncProvider* GetVSyncProvider() OVERRIDE {
+  gfx::VSyncProvider* GetVSyncProvider() override {
     return vsync_provider_.get();
   }
 
@@ -58,10 +58,10 @@ class FakeSoftwareOutputDevice : public cc::SoftwareOutputDevice {
 class SoftwareBrowserCompositorOutputSurfaceTest : public testing::Test {
  public:
   SoftwareBrowserCompositorOutputSurfaceTest();
-  virtual ~SoftwareBrowserCompositorOutputSurfaceTest();
+  ~SoftwareBrowserCompositorOutputSurfaceTest() override;
 
-  virtual void SetUp() OVERRIDE;
-  virtual void TearDown() OVERRIDE;
+  void SetUp() override;
+  void TearDown() override;
 
   scoped_ptr<content::BrowserCompositorOutputSurface> CreateSurface(
       scoped_ptr<cc::SoftwareOutputDevice> device);
@@ -80,7 +80,8 @@ class SoftwareBrowserCompositorOutputSurfaceTest : public testing::Test {
 
 SoftwareBrowserCompositorOutputSurfaceTest::
     SoftwareBrowserCompositorOutputSurfaceTest() {
-  CHECK(gfx::InitializeStaticGLBindings(gfx::kGLImplementationOSMesaGL));
+  // |message_loop_| is not used, but the main thread still has to exist for the
+  // compositor to use.
   message_loop_.reset(new base::MessageLoopForUI);
 }
 
@@ -88,10 +89,13 @@ SoftwareBrowserCompositorOutputSurfaceTest::
     ~SoftwareBrowserCompositorOutputSurfaceTest() {}
 
 void SoftwareBrowserCompositorOutputSurfaceTest::SetUp() {
-  ui::InitializeContextFactoryForTests(false);
-  ui::Compositor::Initialize();
+  bool enable_pixel_output = false;
+  ui::ContextFactory* context_factory =
+      ui::InitializeContextFactoryForTests(enable_pixel_output);
 
-  compositor_.reset(new ui::Compositor(gfx::kNullAcceleratedWidget));
+  compositor_.reset(new ui::Compositor(gfx::kNullAcceleratedWidget,
+                                       context_factory,
+                                       base::MessageLoopProxy::current()));
   surface_proxy_ =
       new content::BrowserCompositorOutputSurfaceProxy(&surface_map_);
 }
@@ -104,7 +108,6 @@ void SoftwareBrowserCompositorOutputSurfaceTest::TearDown() {
 
   surface_map_.Clear();
   ui::TerminateContextFactoryForTests();
-  ui::Compositor::Terminate();
 }
 
 scoped_ptr<content::BrowserCompositorOutputSurface>
@@ -116,25 +119,29 @@ SoftwareBrowserCompositorOutputSurfaceTest::CreateSurface(
           device.Pass(),
           1,
           &surface_map_,
-          compositor_->GetCompositorMessageLoop(),
-          compositor_->AsWeakPtr()));
+          compositor_->vsync_manager()));
 }
 
 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, NoVSyncProvider) {
+  cc::FakeOutputSurfaceClient output_surface_client;
   scoped_ptr<cc::SoftwareOutputDevice> software_device(
       new cc::SoftwareOutputDevice());
   output_surface_ = CreateSurface(software_device.Pass());
+  CHECK(output_surface_->BindToClient(&output_surface_client));
 
   cc::CompositorFrame frame;
   output_surface_->SwapBuffers(&frame);
 
+  EXPECT_EQ(1, output_surface_client.swap_count());
   EXPECT_EQ(NULL, output_surface_->software_device()->GetVSyncProvider());
 }
 
 TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, VSyncProviderUpdates) {
+  cc::FakeOutputSurfaceClient output_surface_client;
   scoped_ptr<cc::SoftwareOutputDevice> software_device(
       new FakeSoftwareOutputDevice());
   output_surface_ = CreateSurface(software_device.Pass());
+  CHECK(output_surface_->BindToClient(&output_surface_client));
 
   FakeVSyncProvider* vsync_provider = static_cast<FakeVSyncProvider*>(
       output_surface_->software_device()->GetVSyncProvider());
@@ -143,5 +150,6 @@ TEST_F(SoftwareBrowserCompositorOutputSurfaceTest, VSyncProviderUpdates) {
   cc::CompositorFrame frame;
   output_surface_->SwapBuffers(&frame);
 
+  EXPECT_EQ(1, output_surface_client.swap_count());
   EXPECT_EQ(1, vsync_provider->call_count());
 }