$menu2 = $menu->copy(); $t->ok($menu2 !== $menu, 'menu2 is another instance then menu'); $t->ok($menu2['Parent 1'] !== $menu['Parent 1'], 'menu2->pt1 is another instance than menu->pt1'); $t->ok($menu2['Parent 1']['Child 2'] !== $menu['Parent 1']['Child 2'], 'menu2->pt1->ch2 is another instance than menu->pt1->ch2'); $t->ok($menu2['Parent 1']['Child 2']->getParent() === $menu2['Parent 1'], 'menu2->pt1->ch2->parent is same instance as menu2->pt1'); $t->ok($menu2['Parent 1']->getParent() === $menu2, 'menu2->pt1->parent is same instance as menu2'); //$t->ok($menu2['Parent 1']->getParent() !== $menu['Parent 1'], 'menu2->pt1->ch2->parent is same instance as menu->pt1'); $t->info('11 - Test slice'); $menu = new ioMenuItem('root'); $menu->addChild('c1'); $menu['c1']->addChild('gc1'); $menu['c1']->addChild('gc2'); $menu->addChild('c2'); $menu->addChild('c3'); $menu->addChild('c4'); $menu2 = $menu->slice(0, 3); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3'), 'slice 0, 3'); $menu2 = $menu->slice(0, "c3"); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3'), 'slice 0, c3'); $menu2 = $menu->slice("c1", "c3"); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3'), 'slice c1, c3'); $menu2 = $menu->slice($menu['c1'], $menu['c3']); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3'), 'slice c1, c3'); $menu2 = $menu->slice(1, 2); $t->is(array_keys($menu2->getChildren()), array('c2', 'c3'), 'slice 1, 2'); $menu2 = $menu->slice(1, "c3"); $t->is(array_keys($menu2->getChildren()), array('c2', 'c3'), 'slice 1, c3'); $menu2 = $menu->slice("c2", "c3"); $t->is(array_keys($menu2->getChildren()), array('c2', 'c3'), 'slice c2, c3'); $menu2 = $menu->slice($menu['c2'], $menu['c3']); $t->is(array_keys($menu2->getChildren()), array('c2', 'c3'), 'slice c2, c3');