Skip to content

Commit 12ac2db

Browse files
committed
Made Util::setMenu() work for any relative paths that resolve to the root menu;
Added tests for that and for ResponseCollection::\_invoke() without arguments.
1 parent 3b058ed commit 12ac2db

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

src/PEAR2/Net/RouterOS/Util.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,14 @@ public function setMenu($newMenu)
123123
} elseif ('/' === $newMenu[0]) {
124124
$this->menu = $menuRequest->setCommand($newMenu)->getCommand();
125125
} else {
126-
$this->menu = $menuRequest->setCommand(
127-
'/' . str_replace('/', ' ', substr($this->menu, 1)) . ' ' .
128-
str_replace('/', ' ', $newMenu)
129-
)->getCommand();
126+
$this->menu = '/' . substr(
127+
$menuRequest->setCommand(
128+
'/' . str_replace('/', ' ', substr($this->menu, 1)) .
129+
' ' . str_replace('/', ' ', $newMenu) . ' ?'
130+
)->getCommand(),
131+
1,
132+
-2/*strlen('/?')*/
133+
);
130134
}
131135
}
132136
$this->clearIdCache();

tests/Client/Safe.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,7 @@ public function testClientInvokability()
764764
$this->assertEquals(count($arpResponses1), count($arpResponses2));
765765
$this->assertEquals(count($arpResponses2), count($arpResponses3));
766766
$this->assertInstanceOf(ROS_NAMESPACE . '\Response', $arpResponses1(0));
767+
$this->assertInstanceOf('ArrayObject', $arpResponses1());
767768
}
768769

769770
public function testStreamEquality()

tests/Util/Safe.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ public function testSetGetMenu()
3434
'/queue',
3535
$this->util->setMenu('queue')->getMenu()
3636
);
37+
$this->assertSame(
38+
'/',
39+
$this->util->setMenu('..')->getMenu()
40+
);
41+
$this->assertSame(
42+
'/',
43+
$this->util->setMenu('queue ..')->getMenu()
44+
);
45+
$this->assertSame(
46+
'/queue',
47+
$this->util->setMenu('/queue')->getMenu()
48+
);
3749
$this->assertSame(
3850
'/queue/simple',
3951
$this->util->setMenu('simple')->getMenu()

0 commit comments

Comments
 (0)