~unity-team/v8-cpp/trunk

« back to all changes in this revision

Viewing changes to tests/objects/test.cpp

  • Committer: Marcus Tomlinson
  • Date: 2015-09-09 05:06:54 UTC
  • mfrom: (23.1.11 test-gc)
  • Revision ID: marcus.tomlinson@canonical.com-20150909050654-c06enir6h8dm5ukh
Added support for shared_ptr and unique_ptr

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
 
55
55
TEST(Test, object_to_js)
56
56
{
57
 
    auto test_object = v8cpp::run_script<EmbeddedTestClass*>(
 
57
    auto test_object = v8cpp::run_script<std::shared_ptr<EmbeddedTestClass>>(
 
58
    R"(
 
59
        var module = require("./test-objects-module");
 
60
        var test_object = module.new_TestClass(1, 2);
 
61
        test_object.embedded_class_uptr();
 
62
    )");
 
63
 
 
64
    EXPECT_EQ(test_object->i(), -1);
 
65
 
 
66
    auto test_object2 = v8cpp::run_script<std::shared_ptr<EmbeddedTestClass>>(
 
67
    R"(
 
68
        var module = require("./test-objects-module");
 
69
        var test_object = module.new_TestClass(1, 2);
 
70
        test_object.embedded_class_sptr();
 
71
    )");
 
72
 
 
73
    EXPECT_EQ(test_object2->i(), -1);
 
74
 
 
75
    auto test_object3 = v8cpp::run_script<EmbeddedTestClass*>(
58
76
    R"(
59
77
        var module = require("./test-objects-module");
60
78
        var test_object = module.new_TestClass(1, 2);
61
79
        test_object.embedded_class_ptr();
62
80
    )");
63
81
 
64
 
    EXPECT_EQ(test_object->i(), -1);
65
 
 
66
 
    auto test_object2 = v8cpp::run_script<EmbeddedTestClass&>(
67
 
    R"(
68
 
        var module = require("./test-objects-module");
69
 
        var test_object = module.new_TestClass(1, 2);
70
 
        test_object.embedded_class_ref();
71
 
    )");
72
 
 
73
 
    EXPECT_EQ(test_object2.i(), -1);
74
 
 
75
 
    auto test_object3 = v8cpp::run_script<EmbeddedTestClass>(
 
82
    EXPECT_EQ(test_object3->i(), -1);
 
83
 
 
84
    auto test_object4 = v8cpp::run_script<EmbeddedTestClass>(
76
85
    R"(
77
86
        var module = require("./test-objects-module");
78
87
        var test_object = module.new_TestClass(1, 2);
79
88
        test_object.embedded_class_copy();
80
89
    )");
81
90
 
82
 
    EXPECT_EQ(test_object3.i(), -1);
 
91
    EXPECT_EQ(test_object4.i(), -1);
83
92
}
84
93
 
85
94
TEST(Test, object_from_js)
94
103
        test_object;
95
104
    )");
96
105
 
 
106
    auto result = v8cpp::run_script<int>(
 
107
    R"(
 
108
        var module = require("./test-objects-module");
 
109
        var test_object = module.new_TestClass(1, 2);
 
110
 
 
111
        var embedded_object = test_object.embedded_class_uptr();
 
112
        embedded_object.i();
 
113
    )");
 
114
 
 
115
    EXPECT_EQ(result, -1);
 
116
 
 
117
    auto result2 = v8cpp::run_script<int>(
 
118
    R"(
 
119
        var module = require("./test-objects-module");
 
120
        var test_object = module.new_TestClass(1, 2);
 
121
 
 
122
        var embedded_object = test_object.embedded_class_sptr();
 
123
        embedded_object.i();
 
124
    )");
 
125
 
 
126
    EXPECT_EQ(result2, -1);
 
127
 
97
128
    EXPECT_EQ(test_object.i(), -1);
98
129
 
99
 
    auto result = v8cpp::run_script<int>(
 
130
    auto result3 = v8cpp::run_script<int>(
100
131
    R"(
101
132
        var module = require("./test-objects-module");
102
133
        var test_object = module.new_TestClass(1, 2);
106
137
                          test_object2.embedded_class_ref());
107
138
    )");
108
139
 
109
 
    EXPECT_EQ(result, -2);
 
140
    EXPECT_EQ(result3, -2);
 
141
 
 
142
    auto result4 = v8cpp::run_script<int>(
 
143
    R"(
 
144
        var module = require("./test-objects-module");
 
145
        var test_object = module.new_TestClass(1, 2);
 
146
        var test_object2 = module.new_TestClass(1, 2);
 
147
 
 
148
        test_object.add_i(test_object.embedded_class_sptr(),
 
149
                          test_object2.embedded_class_uptr());
 
150
    )");
 
151
 
 
152
    EXPECT_EQ(result4, -2);
110
153
}