File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed
tests/19_NodeTypeManagement Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,13 @@ protected function registerNodeTypePrimaryItem()
2323 return $ntm->registerNodeTypesCnd($this->primary_item_cnd, true);
2424 }
2525
26+ protected function registerBuiltinNodeType()
27+ {
28+ $ntm = $this->workspace->getNodeTypeManager();
29+
30+ return $ntm->registerNodeTypesCnd($this->system_cnd, true);
31+ }
32+
2633 private $cnd = "
2734 <'phpcr'='http://www.doctrine-project.org/projects/phpcr_odm'>
2835 [phpcr:apitest]
@@ -39,4 +46,10 @@ protected function registerNodeTypePrimaryItem()
3946 - phpcr:content (string)
4047 primary
4148 ";
49+
50+ private $system_cnd = "
51+ <'nt'='http://www.jcp.org/jcr/nt/1.0'>
52+ [nt:file]
53+ - x (string)
54+ ";
4255}
Original file line number Diff line number Diff line change @@ -29,7 +29,6 @@ protected function setUp()
2929 $this->renewSession(); // reset session
3030 parent::setUp();
3131
32- $this->session = $this->session;
3332 $this->workspace = $this->session->getWorkspace();
3433 }
3534
@@ -53,6 +52,14 @@ abstract protected function registerNodeTypes($allowUpdate);
5352 */
5453 abstract protected function registerNodeTypePrimaryItem();
5554
55+ /**
56+ * Try to register a node type with an object or cnd that would overwrite
57+ * a build-in node type, e.g. nt:file
58+ *
59+ * Have allowUpdate true, should still fail.
60+ */
61+ abstract protected function registerBuiltinNodeType();
62+
5663 public function testRegisterNodeTypes()
5764 {
5865 $types = $this->registerNodeTypes(true);
@@ -159,4 +166,12 @@ public function testPrimaryItem()
159166 $this->assertInstanceOf('PHPCR\ItemInterface', $node);
160167 $this->assertEquals('phpcr:content', $primary->getName());
161168 }
169+
170+ /**
171+ * @expectedException \PHPCR\RepositoryException
172+ */
173+ public function testOverwriteBuiltinNodeType()
174+ {
175+ $this->registerBuiltinNodeType();
176+ }
162177}
Original file line number Diff line number Diff line change @@ -60,4 +60,21 @@ protected function registerNodeTypePrimaryItem()
6060
6161 return $ntm->registerNodeTypes($nodeTypes, true);
6262 }
63+
64+ protected function registerBuiltinNodeType()
65+ {
66+ $ntm = $this->workspace->getNodeTypeManager();
67+
68+ $test = $ntm->createNodeTypeTemplate();
69+ $test->setName('nt:file');
70+
71+ $prop = $ntm->createPropertyDefinitionTemplate();
72+ $prop->setName('x');
73+ $prop->setRequiredType(PropertyType::STRING);
74+ $test->getPropertyDefinitionTemplates()->append($prop);
75+
76+ $nodeTypes[] = $test;
77+
78+ return $ntm->registerNodeTypes($nodeTypes, true);
79+ }
6380}
You can’t perform that action at this time.
0 commit comments