Home | History | Annotate | Download | only in testing
      1 // Copyright 2014 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 #include "config.h"
      6 #include "core/testing/PrivateScriptTest.h"
      7 
      8 #include "bindings/core/v8/PrivateScriptRunner.h"
      9 #include "bindings/core/v8/V8Binding.h"
     10 #include "bindings/core/v8/V8PrivateScriptTest.h"
     11 #include "core/testing/DummyPageHolder.h"
     12 
     13 #include <gtest/gtest.h>
     14 
     15 // PrivateScriptTest.js is available only in debug builds.
     16 #ifndef NDEBUG
     17 namespace blink {
     18 
     19 namespace {
     20 
     21 class PrivateScriptTestTest : public ::testing::Test {
     22 public:
     23     PrivateScriptTestTest()
     24         : m_scope(v8::Isolate::GetCurrent())
     25         , m_dummyPageHolder(DummyPageHolder::create())
     26         , m_privateScriptTest(PrivateScriptTest::create(frame()))
     27     {
     28     }
     29 
     30     ~PrivateScriptTestTest()
     31     {
     32     }
     33 
     34     LocalFrame* frame() const { return &m_dummyPageHolder->frame(); }
     35     Document* document() const { return &m_dummyPageHolder->document(); }
     36     v8::Isolate* isolate() const { return m_scope.isolate(); }
     37     PrivateScriptTest* privateScriptTest() const { return m_privateScriptTest.get(); }
     38 
     39 protected:
     40     V8TestingScope m_scope;
     41     OwnPtr<DummyPageHolder> m_dummyPageHolder;
     42     Persistent<PrivateScriptTest> m_privateScriptTest;
     43 };
     44 
     45 TEST_F(PrivateScriptTestTest, invokePrivateScriptMethodFromCPP)
     46 {
     47     bool success;
     48     int result;
     49     success = V8PrivateScriptTest::PrivateScript::addIntegerForPrivateScriptOnlyMethod(frame(), privateScriptTest(), 100, 200, &result);
     50     EXPECT_TRUE(success);
     51     EXPECT_EQ(result, 300);
     52 }
     53 
     54 TEST_F(PrivateScriptTestTest, invokePrivateScriptAttributeFromCPP)
     55 {
     56     bool success;
     57     String result;
     58     success = V8PrivateScriptTest::PrivateScript::stringAttributeForPrivateScriptOnlyAttributeGetter(frame(), privateScriptTest(), &result);
     59     EXPECT_TRUE(success);
     60     EXPECT_EQ(result, "yyy");
     61     success = V8PrivateScriptTest::PrivateScript::stringAttributeForPrivateScriptOnlyAttributeSetter(frame(), privateScriptTest(), "foo");
     62     EXPECT_TRUE(success);
     63     success = V8PrivateScriptTest::PrivateScript::stringAttributeForPrivateScriptOnlyAttributeGetter(frame(), privateScriptTest(), &result);
     64     EXPECT_TRUE(success);
     65     EXPECT_EQ(result, "foo");
     66 }
     67 
     68 } // namespace
     69 
     70 } // namespace blink
     71 #endif
     72