Fix browser launch on the login screen.
[chromium-blink-merge.git] / ppapi / tests / test_instance_deprecated.h
blobc442c32ed8054417e88756ef9db37f3d689e478c
1 // Copyright (c) 2012 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.
5 #ifndef PPAPI_TESTS_TEST_INSTANCE_H_
6 #define PPAPI_TESTS_TEST_INSTANCE_H_
8 #include <string>
9 #include <vector>
11 #include "ppapi/cpp/dev/scriptable_object_deprecated.h"
12 #include "ppapi/tests/test_case.h"
14 class TestInstance;
16 // ScriptableObject used by TestInstance.
17 class InstanceSO : public pp::deprecated::ScriptableObject {
18 public:
19 explicit InstanceSO(TestInstance* i);
20 virtual ~InstanceSO();
22 // pp::deprecated::ScriptableObject overrides.
23 bool HasMethod(const pp::Var& name, pp::Var* exception);
24 pp::Var Call(const pp::Var& name,
25 const std::vector<pp::Var>& args,
26 pp::Var* exception);
28 // For out-of-process, the InstanceSO might be deleted after the instance was
29 // already destroyed, so we can't rely on test_instance_ being valid.
30 void clear_test_instance() { test_instance_ = NULL; }
32 private:
33 TestInstance* test_instance_;
34 const PPB_Testing_Private* testing_interface_;
37 class TestInstance : public TestCase {
38 public:
39 TestInstance(TestingInstance* instance);
40 virtual ~TestInstance();
42 // TestCase implementation.
43 virtual bool Init();
44 virtual void RunTests(const std::string& filter);
46 void set_string(const std::string& s) { string_ = s; }
48 // Leak a reference to the given var, but ignore the leak in the leak checking
49 // that happens at shutdown. This allows us to test the "ForceFree" that
50 // happens on instance shutdown.
51 void LeakReferenceAndIgnore(const pp::Var& leaked);
53 // This resets the scriptable object if it gets destroyed before the instance
54 // which should be the case for in-process tests.
55 void clear_instance_so() { instance_so_ = NULL; }
57 protected:
58 // Test case protected overrides.
59 virtual pp::deprecated::ScriptableObject* CreateTestObject();
61 private:
62 std::string TestExecuteScript();
63 std::string TestRecursiveObjects();
64 std::string TestLeakedObjectDestructors();
65 std::string TestSetupExecuteScriptAtInstanceShutdown();
66 std::string TestExecuteScriptAtInstanceShutdown();
68 // Value written by set_string which is called by the ScriptableObject. This
69 // allows us to keep track of what was called.
70 std::string string_;
72 // The scriptable object for this test.
73 InstanceSO* instance_so_;
76 #endif // PPAPI_TESTS_TEST_INSTANCE_H_