Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3174)

Unified Diff: apps/moterm/gl_helper_unittest.cc

Issue 1556683004: Port Moterm to Mozart. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-16
Patch Set: fix nits Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « apps/moterm/gl_helper_test_app.cc ('k') | apps/moterm/main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: apps/moterm/gl_helper_unittest.cc
diff --git a/apps/moterm/gl_helper_unittest.cc b/apps/moterm/gl_helper_unittest.cc
deleted file mode 100644
index 409aab604ef494dea70fa4d58d87af6c27b8b615..0000000000000000000000000000000000000000
--- a/apps/moterm/gl_helper_unittest.cc
+++ /dev/null
@@ -1,169 +0,0 @@
-// Copyright 2015 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.
-
-// Note: This test depends on |GlHelper|, which depends on an implementation of
-// mojo:native_viewport_service and mojo:surfaces_service.
-
-#include "apps/moterm/gl_helper.h"
-
-#include <GLES2/gl2.h>
-
-#include "base/logging.h"
-#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "mojo/public/cpp/application/application_impl.h"
-#include "mojo/public/cpp/application/application_test_base.h"
-#include "mojo/services/surfaces/interfaces/surface_id.mojom.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-class GlHelperTest : public mojo::test::ApplicationTestBase,
- public GlHelper::Client {
- public:
- GlHelperTest()
- : surface_id_changed_call_count_(0),
- on_frame_displayed_call_count_(0),
- last_frame_id_(0) {}
- ~GlHelperTest() override {}
-
- void SetUp() override {
- mojo::test::ApplicationTestBase::SetUp();
-
- initial_size_.width = 100;
- initial_size_.height = 100;
- gl_helper_.reset(new GlHelper(this, application_impl()->shell(), GL_RGBA,
- false, initial_size_));
- }
-
- protected:
- const mojo::Size& initial_size() const { return initial_size_; }
- GlHelper* gl_helper() { return gl_helper_.get(); }
-
- unsigned surface_id_changed_call_count() const {
- return surface_id_changed_call_count_;
- }
- const mojo::SurfaceId* last_surface_id() const {
- return last_surface_id_.get();
- }
- unsigned on_frame_displayed_call_count() const {
- return on_frame_displayed_call_count_;
- }
- uint32_t last_frame_id() const { return last_frame_id_; }
-
- private:
- // |GlHelper::Client|:
- void OnSurfaceIdChanged(mojo::SurfaceIdPtr surface_id) override {
- surface_id_changed_call_count_++;
- last_surface_id_ = surface_id.Pass();
- base::MessageLoop::current()->Quit();
- }
-
- void OnContextLost() override {
- // We don't currently test this, but we'll get it on teardown.
- // TODO(vtl): We probably should figure out how to test this explicitly.
- }
-
- void OnFrameDisplayed(uint32_t frame_id) override {
- on_frame_displayed_call_count_++;
- last_frame_id_ = frame_id;
- base::MessageLoop::current()->Quit();
- }
-
- mojo::Size initial_size_;
- scoped_ptr<GlHelper> gl_helper_;
-
- unsigned surface_id_changed_call_count_;
- mojo::SurfaceIdPtr last_surface_id_;
- unsigned on_frame_displayed_call_count_;
- uint32_t last_frame_id_;
-
- DISALLOW_COPY_AND_ASSIGN(GlHelperTest);
-};
-
-TEST_F(GlHelperTest, Basic) {
- gl_helper()->StartFrame();
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-
- scoped_ptr<unsigned char[]> bitmap(
- new unsigned char[initial_size().width * initial_size().height * 4]);
- memset(bitmap.get(), 123, initial_size().width * initial_size().height * 4);
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, initial_size().width,
- initial_size().height, GL_RGBA, GL_UNSIGNED_BYTE,
- bitmap.get());
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-
- uint32_t frame_id = gl_helper()->EndFrame();
-
- // We should get |OnSurfaceIdChanged()| and then |OnFrameDisplayed()|.
- while (surface_id_changed_call_count() < 1u ||
- on_frame_displayed_call_count() < 1u)
- base::MessageLoop::current()->Run();
-
- EXPECT_EQ(1u, surface_id_changed_call_count());
- EXPECT_TRUE(last_surface_id());
- EXPECT_NE(last_surface_id()->local, 0u);
- EXPECT_NE(last_surface_id()->id_namespace, 0u);
- EXPECT_EQ(1u, on_frame_displayed_call_count());
- EXPECT_EQ(frame_id, last_frame_id());
-}
-
-TEST_F(GlHelperTest, SetSurfaceSizeAndMakeCurrent) {
- // It only creates surfaces lazily, so we have to start/end a frame.
- gl_helper()->StartFrame();
- GLuint frame_id = gl_helper()->EndFrame();
- while (surface_id_changed_call_count() < 1u ||
- on_frame_displayed_call_count() < 1u)
- base::MessageLoop::current()->Run();
- EXPECT_EQ(1u, surface_id_changed_call_count());
- mojo::SurfaceId surface_id = *last_surface_id();
- EXPECT_EQ(1u, on_frame_displayed_call_count());
- EXPECT_EQ(frame_id, last_frame_id());
-
- // Set a new surface size.
- mojo::Size new_size;
- new_size.width = initial_size().width * 2;
- new_size.height = initial_size().height + 50;
- gl_helper()->SetSurfaceSize(new_size);
-
- gl_helper()->StartFrame();
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-
- GLuint frame_texture = gl_helper()->GetFrameTexture();
- EXPECT_NE(frame_texture, 0u);
-
- // Binding it should be OK.
- glBindTexture(GL_TEXTURE_2D, frame_texture);
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-
- scoped_ptr<unsigned char[]> bitmap(
- new unsigned char[new_size.width * new_size.height * 4]);
- memset(bitmap.get(), 123, new_size.width * new_size.height * 4);
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, new_size.width, new_size.height,
- GL_RGBA, GL_UNSIGNED_BYTE, bitmap.get());
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-
- frame_id = gl_helper()->EndFrame();
- EXPECT_NE(frame_id, last_frame_id());
-
- // We should get another |OnSurfaceIdChanged()| and another
- // |OnFrameDisplayed()|.
- while (surface_id_changed_call_count() < 2u ||
- on_frame_displayed_call_count() < 2u)
- base::MessageLoop::current()->Run();
- EXPECT_EQ(2u, surface_id_changed_call_count());
- EXPECT_TRUE(last_surface_id());
- // Only the local part of the surface ID should have changed.
- EXPECT_NE(last_surface_id()->local, surface_id.local);
- EXPECT_EQ(surface_id.id_namespace, last_surface_id()->id_namespace);
- EXPECT_EQ(2u, on_frame_displayed_call_count());
- EXPECT_EQ(frame_id, last_frame_id());
-
- // An out-of-the-blue |MakeCurrent()| should work.
- gl_helper()->MakeCurrent();
- EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
-}
-
-} // namespace
« no previous file with comments | « apps/moterm/gl_helper_test_app.cc ('k') | apps/moterm/main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698