| Index: ui/gfx/ozone/impl/dri_surface_unittest.cc
 | 
| diff --git a/ui/gfx/ozone/impl/dri_surface_unittest.cc b/ui/gfx/ozone/impl/dri_surface_unittest.cc
 | 
| deleted file mode 100644
 | 
| index 7684ed63674f633c62492c7ef2da4c5c1f67ec8e..0000000000000000000000000000000000000000
 | 
| --- a/ui/gfx/ozone/impl/dri_surface_unittest.cc
 | 
| +++ /dev/null
 | 
| @@ -1,212 +0,0 @@
 | 
| -// Copyright 2013 The Chromium Authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#include "testing/gtest/include/gtest/gtest.h"
 | 
| -#include "third_party/skia/include/core/SkCanvas.h"
 | 
| -#include "third_party/skia/include/core/SkColor.h"
 | 
| -#include "third_party/skia/include/core/SkDevice.h"
 | 
| -#include "ui/gfx/ozone/impl/dri_skbitmap.h"
 | 
| -#include "ui/gfx/ozone/impl/dri_surface.h"
 | 
| -#include "ui/gfx/ozone/impl/hardware_display_controller.h"
 | 
| -
 | 
| -namespace {
 | 
| -
 | 
| -// Create a basic mode for a 6x4 screen.
 | 
| -const drmModeModeInfo kDefaultMode =
 | 
| -    {0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}};
 | 
| -
 | 
| -// Mock file descriptor ID.
 | 
| -const int kFd = 3;
 | 
| -
 | 
| -// Mock connector ID.
 | 
| -const uint32_t kConnectorId = 1;
 | 
| -
 | 
| -// Mock CRTC ID.
 | 
| -const uint32_t kCrtcId = 1;
 | 
| -
 | 
| -// Mock DPMS property ID.
 | 
| -const uint32_t kDPMSPropertyId = 1;
 | 
| -
 | 
| -class MockDriWrapper : public gfx::DriWrapper {
 | 
| - public:
 | 
| -  MockDriWrapper() : DriWrapper(""), id_(1) { fd_ = kFd; }
 | 
| -  virtual ~MockDriWrapper() { fd_ = -1; }
 | 
| -
 | 
| -  virtual drmModeCrtc* GetCrtc(uint32_t crtc_id) OVERRIDE { return NULL; }
 | 
| -  virtual void FreeCrtc(drmModeCrtc* crtc) OVERRIDE {}
 | 
| -  virtual bool SetCrtc(uint32_t crtc_id,
 | 
| -                       uint32_t framebuffer,
 | 
| -                       uint32_t* connectors,
 | 
| -                       drmModeModeInfo* mode) OVERRIDE { return true; }
 | 
| -  virtual bool SetCrtc(drmModeCrtc* crtc, uint32_t* connectors) OVERRIDE {
 | 
| -    return true;
 | 
| -  }
 | 
| -  virtual bool AddFramebuffer(const drmModeModeInfo& mode,
 | 
| -                              uint8_t depth,
 | 
| -                              uint8_t bpp,
 | 
| -                              uint32_t stride,
 | 
| -                              uint32_t handle,
 | 
| -                              uint32_t* framebuffer) OVERRIDE {
 | 
| -    *framebuffer = id_++;
 | 
| -    return true;
 | 
| -  }
 | 
| -  virtual bool RemoveFramebuffer(uint32_t framebuffer) OVERRIDE { return true; }
 | 
| -  virtual bool PageFlip(uint32_t crtc_id,
 | 
| -                        uint32_t framebuffer,
 | 
| -                        void* data) OVERRIDE {
 | 
| -    return true;
 | 
| -  }
 | 
| -  virtual bool ConnectorSetProperty(uint32_t connector_id,
 | 
| -                                    uint32_t property_id,
 | 
| -                                    uint64_t value) OVERRIDE { return true; }
 | 
| -
 | 
| - private:
 | 
| -  int id_;
 | 
| -  DISALLOW_COPY_AND_ASSIGN(MockDriWrapper);
 | 
| -};
 | 
| -
 | 
| -class MockDriSkBitmap : public gfx::DriSkBitmap {
 | 
| - public:
 | 
| -  MockDriSkBitmap(int fd,
 | 
| -                       bool initialize_expectation)
 | 
| -      : DriSkBitmap(fd),
 | 
| -        initialize_expectation_(initialize_expectation) {}
 | 
| -  virtual ~MockDriSkBitmap() {}
 | 
| -
 | 
| -  virtual bool Initialize() OVERRIDE {
 | 
| -    if (!initialize_expectation_)
 | 
| -      return false;
 | 
| -
 | 
| -    allocPixels();
 | 
| -    // Clear the bitmap to black.
 | 
| -    eraseColor(SK_ColorBLACK);
 | 
| -
 | 
| -    return true;
 | 
| -  }
 | 
| - private:
 | 
| -  bool initialize_expectation_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(MockDriSkBitmap);
 | 
| -};
 | 
| -
 | 
| -class MockDriSurface : public gfx::DriSurface {
 | 
| - public:
 | 
| -  MockDriSurface(gfx::HardwareDisplayController* controller)
 | 
| -      : DriSurface(controller),
 | 
| -        initialize_expectation_(true) {}
 | 
| -  virtual ~MockDriSurface() {}
 | 
| -
 | 
| -  void set_initialize_expectation(bool state) {
 | 
| -    initialize_expectation_ = state;
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  virtual gfx::DriSkBitmap* CreateBuffer() OVERRIDE {
 | 
| -    return new MockDriSkBitmap(kFd, initialize_expectation_);
 | 
| -  }
 | 
| -
 | 
| -  bool initialize_expectation_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(MockDriSurface);
 | 
| -};
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -class DriSurfaceTest : public testing::Test {
 | 
| - public:
 | 
| -  DriSurfaceTest() {}
 | 
| -
 | 
| -  virtual void SetUp() OVERRIDE;
 | 
| -  virtual void TearDown() OVERRIDE;
 | 
| -
 | 
| - protected:
 | 
| -  scoped_ptr<MockDriWrapper> drm_;
 | 
| -  scoped_ptr<gfx::HardwareDisplayController> controller_;
 | 
| -  scoped_ptr<MockDriSurface> surface_;
 | 
| -
 | 
| - private:
 | 
| -  DISALLOW_COPY_AND_ASSIGN(DriSurfaceTest);
 | 
| -};
 | 
| -
 | 
| -void DriSurfaceTest::SetUp() {
 | 
| -  drm_.reset(new MockDriWrapper());
 | 
| -  controller_.reset(new gfx::HardwareDisplayController());
 | 
| -  controller_->SetControllerInfo(
 | 
| -      drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
 | 
| -
 | 
| -  surface_.reset(new MockDriSurface(controller_.get()));
 | 
| -}
 | 
| -
 | 
| -void DriSurfaceTest::TearDown() {
 | 
| -  surface_.reset();
 | 
| -  controller_.reset();
 | 
| -  drm_.reset();
 | 
| -}
 | 
| -
 | 
| -TEST_F(DriSurfaceTest, FailInitialization) {
 | 
| -  surface_->set_initialize_expectation(false);
 | 
| -  EXPECT_FALSE(surface_->Initialize());
 | 
| -}
 | 
| -
 | 
| -TEST_F(DriSurfaceTest, SuccessfulInitialization) {
 | 
| -  EXPECT_TRUE(surface_->Initialize());
 | 
| -}
 | 
| -
 | 
| -TEST_F(DriSurfaceTest, CheckFBIDOnSwap) {
 | 
| -  EXPECT_TRUE(surface_->Initialize());
 | 
| -  controller_->BindSurfaceToController(
 | 
| -      surface_.PassAs<gfx::DriSurface>());
 | 
| -
 | 
| -  // Check that the framebuffer ID is correct.
 | 
| -  EXPECT_EQ(2u, controller_->get_surface()->GetFramebufferId());
 | 
| -
 | 
| -  controller_->get_surface()->SwapBuffers();
 | 
| -
 | 
| -  EXPECT_EQ(1u, controller_->get_surface()->GetFramebufferId());
 | 
| -}
 | 
| -
 | 
| -TEST_F(DriSurfaceTest, CheckPixelPointerOnSwap) {
 | 
| -  EXPECT_TRUE(surface_->Initialize());
 | 
| -
 | 
| -  void* bitmap_pixels1 = surface_->GetDrawableForWidget()->getDevice()
 | 
| -      ->accessBitmap(false).getPixels();
 | 
| -
 | 
| -  surface_->SwapBuffers();
 | 
| -
 | 
| -  void* bitmap_pixels2 = surface_->GetDrawableForWidget()->getDevice()
 | 
| -      ->accessBitmap(false).getPixels();
 | 
| -
 | 
| -  // Check that once the buffers have been swapped the drawable's underlying
 | 
| -  // pixels have been changed.
 | 
| -  EXPECT_NE(bitmap_pixels1, bitmap_pixels2);
 | 
| -}
 | 
| -
 | 
| -TEST_F(DriSurfaceTest, CheckCorrectBufferSync) {
 | 
| -  EXPECT_TRUE(surface_->Initialize());
 | 
| -
 | 
| -  SkCanvas* canvas = surface_->GetDrawableForWidget();
 | 
| -  SkRect clip;
 | 
| -  // Modify part of the canvas.
 | 
| -  clip.set(0, 0,
 | 
| -           canvas->getDeviceSize().width() / 2,
 | 
| -           canvas->getDeviceSize().height() / 2);
 | 
| -  canvas->clipRect(clip, SkRegion::kReplace_Op);
 | 
| -
 | 
| -  canvas->drawColor(SK_ColorWHITE);
 | 
| -
 | 
| -  surface_->SwapBuffers();
 | 
| -
 | 
| -  // Verify that the modified contents have been copied over on swap (make sure
 | 
| -  // the 2 buffers have the same content).
 | 
| -  for (int i = 0; i < canvas->getDeviceSize().height(); ++i) {
 | 
| -    for (int j = 0; j < canvas->getDeviceSize().width(); ++j) {
 | 
| -      if (i < clip.height() && j < clip.width())
 | 
| -        EXPECT_EQ(SK_ColorWHITE,
 | 
| -                  canvas->getDevice()->accessBitmap(false).getColor(j, i));
 | 
| -      else
 | 
| -        EXPECT_EQ(SK_ColorBLACK,
 | 
| -                  canvas->getDevice()->accessBitmap(false).getColor(j, i));
 | 
| -    }
 | 
| -  }
 | 
| -}
 | 
| 
 |