summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-05-12 14:58:41 +0000
committerFelipe Pena <felipe@php.net>2008-05-12 14:58:41 +0000
commitc3d4d21afc21ad84172e64c4eecf9a7f71f59b88 (patch)
tree9ccd51a4988bd8a0fa05814acb8324b461f4a8f3 /Zend
parentc065d7e7e7174554a966ee32039cf5512c769f38 (diff)
downloadphp-git-c3d4d21afc21ad84172e64c4eecf9a7f71f59b88.tar.gz
- New tests
Diffstat (limited to 'Zend')
-rw-r--r--Zend/tests/class_alias_011.phpt26
-rw-r--r--Zend/tests/class_alias_012.phpt33
-rw-r--r--Zend/tests/class_alias_013.phpt26
-rw-r--r--Zend/tests/class_alias_014.phpt15
-rw-r--r--Zend/tests/class_alias_015.phpt18
-rw-r--r--Zend/tests/class_alias_016.phpt21
-rw-r--r--Zend/tests/class_alias_017.phpt33
-rw-r--r--Zend/tests/class_alias_018.phpt37
-rw-r--r--Zend/tests/class_alias_019.phpt17
-rw-r--r--Zend/tests/class_alias_020.phpt33
10 files changed, 259 insertions, 0 deletions
diff --git a/Zend/tests/class_alias_011.phpt b/Zend/tests/class_alias_011.phpt
new file mode 100644
index 0000000000..58ba28a2bb
--- /dev/null
+++ b/Zend/tests/class_alias_011.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Testing callback in alias
+--FILE--
+<?php
+
+class foo {
+ static public function test() {
+ print "hello\n";
+ }
+ public function test2() {
+ print "foobar!\n";
+ }
+}
+
+class_alias('FOO', 'bar');
+
+call_user_func(array('bar', 'test'));
+
+
+$a = new bar;
+call_user_func(array($a, 'test2'));
+
+?>
+--EXPECT--
+hello
+foobar!
diff --git a/Zend/tests/class_alias_012.phpt b/Zend/tests/class_alias_012.phpt
new file mode 100644
index 0000000000..01839668b8
--- /dev/null
+++ b/Zend/tests/class_alias_012.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Testing dynamic alias name
+--FILE--
+<?php
+
+namespace test::baz;
+
+class foo {
+}
+
+new foo;
+
+class_alias(__NAMESPACE__ .'::foo', __NAMESPACE__ .'::T');
+
+var_dump(new foo);
+var_dump(new T);
+
+$var = __NAMESPACE__ .'::foo';
+var_dump(new $var);
+
+$var = __NAMESPACE__ .'::T';
+var_dump(new $var);
+
+?>
+--EXPECTF--
+object(test::baz::foo)#%d (0) {
+}
+object(test::baz::foo)#%d (0) {
+}
+object(test::baz::foo)#%d (0) {
+}
+object(test::baz::foo)#%d (0) {
+}
diff --git a/Zend/tests/class_alias_013.phpt b/Zend/tests/class_alias_013.phpt
new file mode 100644
index 0000000000..d032e26541
--- /dev/null
+++ b/Zend/tests/class_alias_013.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Testing alias of alias
+--FILE--
+<?php
+
+namespace test::baz;
+
+class foo {
+}
+
+new foo;
+
+$alias1 = __NAMESPACE__ .'::T';
+class_alias(__NAMESPACE__ .'::foo', $alias1);
+
+$alias2 = $alias1 .'::BAR';
+class_alias($alias1, $alias2);
+
+var_dump(new test::baz::foo, new test::baz::T::BAR);
+
+?>
+--EXPECTF--
+object(test::baz::foo)#%d (0) {
+}
+object(test::baz::foo)#%d (0) {
+}
diff --git a/Zend/tests/class_alias_014.phpt b/Zend/tests/class_alias_014.phpt
new file mode 100644
index 0000000000..7c4bdb9b04
--- /dev/null
+++ b/Zend/tests/class_alias_014.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Testing creation of alias to class name without namespace prefix
+--FILE--
+<?php
+
+namespace foo;
+
+class bar {
+}
+
+class_alias('bar', 'baz');
+
+?>
+--EXPECTF--
+Warning: Class 'bar' not found in %s on line %d
diff --git a/Zend/tests/class_alias_015.phpt b/Zend/tests/class_alias_015.phpt
new file mode 100644
index 0000000000..d694e10752
--- /dev/null
+++ b/Zend/tests/class_alias_015.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Testing instantiation using namespace:: prefix
+--FILE--
+<?php
+
+namespace foo;
+
+class bar {
+}
+
+class_alias('foo::bar', 'foo::baz');
+
+var_dump(new namespace::baz);
+
+?>
+--EXPECTF--
+object(foo::bar)#%d (0) {
+}
diff --git a/Zend/tests/class_alias_016.phpt b/Zend/tests/class_alias_016.phpt
new file mode 100644
index 0000000000..6e5c0093e8
--- /dev/null
+++ b/Zend/tests/class_alias_016.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Testing creation of alias to global scope
+--FILE--
+<?php
+
+namespace foo;
+
+class bar {
+}
+
+class_alias('foo::bar', 'foo');
+
+var_dump(new ::foo);
+var_dump(new foo);
+
+?>
+--EXPECTF--
+object(foo::bar)#%d (0) {
+}
+
+Fatal error: Class 'foo::foo' not found in %s on line %d
diff --git a/Zend/tests/class_alias_017.phpt b/Zend/tests/class_alias_017.phpt
new file mode 100644
index 0000000000..f4d3626e45
--- /dev/null
+++ b/Zend/tests/class_alias_017.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Testing alias with get_called_class() and get_class()
+--FILE--
+<?php
+
+class foo {
+ public function __construct() {
+ echo get_called_class(), "\n";
+ }
+ static public function test() {
+ echo get_class(), "\n";
+ }
+}
+
+class_alias('foo', 'bar');
+
+new bar;
+
+
+class baz extends bar {
+}
+
+new baz;
+baz::test();
+
+bar::test();
+
+?>
+--EXPECTF--
+foo
+baz
+foo
+foo
diff --git a/Zend/tests/class_alias_018.phpt b/Zend/tests/class_alias_018.phpt
new file mode 100644
index 0000000000..4666e76f89
--- /dev/null
+++ b/Zend/tests/class_alias_018.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Testing class alias with is_subclass_of()
+--FILE--
+<?php
+
+class foo {
+}
+
+class_alias('foo', 'bar');
+
+
+class baz extends bar {
+}
+
+var_dump(is_subclass_of(new foo, 'foo'));
+var_dump(is_subclass_of(new foo, 'bar'));
+var_dump(is_subclass_of(new foo, 'baz'));
+
+var_dump(is_subclass_of(new bar, 'foo'));
+var_dump(is_subclass_of(new bar, 'bar'));
+var_dump(is_subclass_of(new bar, 'baz'));
+
+var_dump(is_subclass_of(new baz, 'foo'));
+var_dump(is_subclass_of(new baz, 'bar'));
+var_dump(is_subclass_of(new baz, 'baz'));
+
+?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(true)
+bool(true)
+bool(false)
diff --git a/Zend/tests/class_alias_019.phpt b/Zend/tests/class_alias_019.phpt
new file mode 100644
index 0000000000..4bcc5d9d0c
--- /dev/null
+++ b/Zend/tests/class_alias_019.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Trying to redeclare class name in global scope inside namespace
+--FILE--
+<?php
+
+namespace foo;
+
+
+class foo {
+}
+
+class_alias(__NAMESPACE__ .'::foo', 'foo');
+class_alias('::foo', 'foo');
+
+?>
+--EXPECTF--
+Warning: Cannot redeclare class foo in %s on line %d
diff --git a/Zend/tests/class_alias_020.phpt b/Zend/tests/class_alias_020.phpt
new file mode 100644
index 0000000000..1c2452cd7f
--- /dev/null
+++ b/Zend/tests/class_alias_020.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Testing class alias in multiple namespaces
+--FILE--
+<?php
+
+namespace foo;
+
+
+class foo {
+}
+
+class_alias(__NAMESPACE__ .'::foo', 'foo');
+
+namespace foo::bar;
+
+class foo {
+}
+
+class_alias(__NAMESPACE__ .'::foo', 'bar');
+
+
+var_dump(new ::foo, new ::bar);
+
+var_dump(new foo::foo, new foo::bar);
+
+?>
+--EXPECTF--
+object(foo::foo)#1 (0) {
+}
+object(foo::bar::foo)#2 (0) {
+}
+
+Fatal error: Class 'foo::bar' not found in %s on line %d