| // Copyright (c) 2011 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_TEST_TEST_VIEW_H_ | |
| #define PPAPI_TEST_TEST_VIEW_H_ | |
| #include <stdint.h> | |
| #include "ppapi/cpp/view.h" | |
| #include "ppapi/tests/test_case.h" | |
| class TestView : public TestCase { | |
| public: | |
| TestView(TestingInstance* instance); | |
| virtual void DidChangeView(const pp::View& view); | |
| // TestCase implementation. | |
| virtual bool Init(); | |
| virtual void RunTests(const std::string& test_filter); | |
| private: | |
| // Waits until we get a view changed event. Note that the browser may give | |
| // us any number of view changed events, so tests that use this should | |
| // expect that there may be spurious events and handle them accordingly. | |
| // Note also that view changed sequencing can change between different | |
| // versions of WebKit. | |
| // | |
| // Returns true if we got a view changed, false if it timed out. | |
| bool WaitUntilViewChanged(); | |
| void QuitMessageLoop(int32_t result); | |
| std::string TestCreatedVisible(); | |
| std::string TestCreatedInvisible(); | |
| std::string TestPageHideShow(); | |
| std::string TestSizeChange(); | |
| std::string TestClipChange(); | |
| std::string TestScrollOffsetChange(); | |
| pp::View last_view_; | |
| // DidChangeView stores the page visibility in this vector on each | |
| // invocation so tests can check it. | |
| std::vector<bool> page_visibility_log_; | |
| // Set to true to request that the next invocation of DidChangeView should | |
| // post a quit to the message loop. DidChangeView will also reset the flag so | |
| // this will only happen once. | |
| bool post_quit_on_view_changed_; | |
| }; | |
| #endif // PPAPI_TEST_TEST_VIEW_H_ |