- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / tests / test_view.h
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef PPAPI_TEST_TEST_VIEW_H_
6 #define PPAPI_TEST_TEST_VIEW_H_
7
8 #include "ppapi/cpp/view.h"
9 #include "ppapi/tests/test_case.h"
10
11 class TestView : public TestCase {
12  public:
13   TestView(TestingInstance* instance);
14
15   virtual void DidChangeView(const pp::View& view);
16
17   // TestCase implementation.
18   virtual bool Init();
19   virtual void RunTests(const std::string& test_filter);
20
21  private:
22   // Waits until we get a view changed event. Note that the browser may give
23   // us any number of view changed events, so tests that use this should
24   // expect that there may be spurious events and handle them accordingly.
25   // Note also that view changed sequencing can change between different
26   // versions of WebKit.
27   //
28   // Returns true if we got a view changed, false if it timed out.
29   bool WaitUntilViewChanged();
30
31   void QuitMessageLoop(int32_t result);
32
33   std::string TestCreatedVisible();
34   std::string TestCreatedInvisible();
35   std::string TestPageHideShow();
36   std::string TestSizeChange();
37   std::string TestClipChange();
38
39   pp::View last_view_;
40
41   // DidChangeView stores the page visibility in this vector on each
42   // invocation so tests can check it.
43   std::vector<bool> page_visibility_log_;
44
45   // Set to true to request that the next invocation of DidChangeView should
46   // post a quit to the message loop. DidChangeView will also reset the flag so
47   // this will only happen once.
48   bool post_quit_on_view_changed_;
49 };
50
51 #endif  // PPAPI_TEST_TEST_VIEW_H_