blob: 5c1a263a666e8fdcaaa1da03353243d3a79cc4ff [file] [log] [blame]
// Copyright 2014 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.
#ifndef PPAPI_TESTS_TEST_FLASH_FULLSCREEN_FOR_BROWSER_UI_H_
#define PPAPI_TESTS_TEST_FLASH_FULLSCREEN_FOR_BROWSER_UI_H_
#include <string>
#include "ppapi/cpp/compositor.h"
#include "ppapi/cpp/compositor_layer.h"
#include "ppapi/cpp/private/flash_fullscreen.h"
#include "ppapi/cpp/size.h"
#include "ppapi/tests/test_case.h"
#include "ppapi/tests/test_utils.h"
#include "ppapi/utility/completion_callback_factory.h"
// This is a special TestCase whose purpose is *not* to test the correctness of
// the Pepper APIs. Instead, this is a simulated Flash plugin, used to place
// the browser window and other UI elements into Flash Fullscreen mode for
// layout, event, focus, etc. testing. See
// chrome/browser/ui/exclusive_access/
// flash_fullscreen_interactive_browsertest.cc.
//
// At start, this simulated Flash plugin will enter fullscreen and paint a green
// color fill. From there, it will respond to mouse clicks or key presses by
// toggling its fill color between red and blue. The browser test reads these
// color changes to detect the desired behavior.
class TestFlashFullscreenForBrowserUI : public TestCase {
public:
explicit TestFlashFullscreenForBrowserUI(TestingInstance* instance);
virtual ~TestFlashFullscreenForBrowserUI();
// TestCase implementation.
virtual bool Init() override;
virtual void RunTests(const std::string& filter) override;
virtual void DidChangeView(const pp::View& view) override;
virtual bool HandleInputEvent(const pp::InputEvent& event) override;
private:
std::string TestEnterFullscreen();
void Paint(int32_t last_compositor_result);
pp::FlashFullscreen screen_mode_;
NestedEvent view_change_event_;
pp::Compositor compositor_;
pp::Size layer_size_;
pp::CompositorLayer color_layer_;
int num_trigger_events_;
pp::CompletionCallbackFactory<TestFlashFullscreenForBrowserUI>
callback_factory_;
};
#endif // PPAPI_TESTS_TEST_FLASH_FULLSCREEN_FOR_BROWSER_UI_H_