This serves as a regression test for https://sourceforge.net/p/swig/bugs/1339/ which was presumably fixed by the change to use PHP's C API to wrap classes.
28 lines
864 B
PHP
28 lines
864 B
PHP
<?php
|
|
require "tests.php";
|
|
|
|
check::functions(array('make_content'));
|
|
check::classes(array('ContentBase','ContentDerived','Container','director_ownership'));
|
|
// No new vars
|
|
check::globals(array());
|
|
|
|
function set_content_and_release(Container $container, ContentBase $content) {
|
|
$content->thisown = false;
|
|
$container->set_content($content);
|
|
}
|
|
|
|
$container = new Container();
|
|
|
|
// make a content in PHP (newobject is 1)
|
|
$content_php = new ContentDerived();
|
|
|
|
// make a content in C++ (newobject is 1)
|
|
$content_cpp = make_content();
|
|
|
|
set_content_and_release($container, $content_php);
|
|
check::equal($container->get_content()->get_name(), "ContentDerived", "get_content() not ContentDerived");
|
|
|
|
set_content_and_release($container, $content_cpp);
|
|
check::equal($container->get_content()->get_name(), "ContentDerived", "get_content() not ContentDerived");
|
|
|
|
check::done();
|