Skip to content

Commit 5efc038

Browse files
authored
Merge pull request #75 from funktechno/f/reorder_list
F/reorder list
2 parents 9fe8f01 + 248190a commit 5efc038

File tree

2 files changed

+40
-11
lines changed

2 files changed

+40
-11
lines changed

Model/Wiki.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,11 @@ public function reorderPages($project_id, $src_wiki_id, $target_wiki_id){
134134
}
135135

136136
// update moved src
137+
$targetColumn--;
137138
// echo "oldSourceColumn: " . $oldSourceColumn . " targetColumn: " . $targetColumn . "<br>";
138-
if($oldSourceColumn != $targetColumn -1){
139+
if($oldSourceColumn != $targetColumn){
139140
// echo "updating src ". $src_wiki_id . " column to ". $targetColumn -1 . "<br>";
140-
$result = $this->savePagePosition($src_wiki_id, $orderColumn -1);
141+
$result = $this->savePagePosition($src_wiki_id, $targetColumn);
141142
if(!$result){
142143
return false;
143144
}

Test/Model/WikiPageTest.php

+37-9
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,15 @@ protected function setUp(): void
2323

2424
$plugin = new Loader($this->container);
2525
$plugin->scan();
26+
27+
$authManager = new AuthenticationManager($this->container);
28+
$authManager->register(new DatabaseAuth($this->container));
29+
30+
$_SESSION['user'] = array('id' => 1, 'username' => 'test', 'role' => 'app-admin');
2631
}
2732

2833
public function testCreation()
2934
{
30-
3135
$projectModel = new ProjectModel($this->container);
3236

3337
$this->assertEquals($projectModel->create(array('name' => 'UnitTest')), 1, 'Failed to create project');
@@ -36,8 +40,8 @@ public function testCreation()
3640

3741
$wikimodel = new Wiki($this->container);
3842
// create wiki pages
39-
$this->assertEquals($wikimodel->createpage($project['id'], "Security", "Some content", '2015-01-01'), 1, 'Failed to a create wiki page on project');
40-
$this->assertEquals($wikimodel->createpage($project['id'], "Conventions", 'More content'), 2, 'Failed to an additional create wiki page on project');
43+
$this->assertEquals(1, $wikimodel->createpage($project['id'], "Security", "Some content", '2015-01-01'), 'Failed to a create wiki page on project');
44+
$this->assertEquals(2, $wikimodel->createpage($project['id'], "Conventions", 'More content'), 'Failed to an additional create wiki page on project');
4145

4246
// grab editions for first wiki page
4347
$editions = $wikimodel->getEditions(1);
@@ -49,12 +53,6 @@ public function testCreation()
4953
];
5054

5155
// create wiki page edition
52-
53-
$authManager = new AuthenticationManager($this->container);
54-
$authManager->register(new DatabaseAuth($this->container));
55-
56-
$_SESSION['user'] = array('id' => 1, 'username' => 'test', 'role' => 'app-admin');
57-
5856
$this->assertTrue($this->container['userSession']->isLogged(), 'Failed to login');
5957

6058
$this->userSession = new UserSession($this->container);
@@ -68,4 +66,34 @@ public function testCreation()
6866
$this->assertEquals('Security', $editions[0]['title']);
6967
$this->assertEquals('Some content', $editions[0]['content']);
7068
}
69+
70+
public function testReOrder(){
71+
72+
$projectModel = new ProjectModel($this->container);
73+
74+
$this->assertEquals($projectModel->create(array('name' => 'reorder')), 1, 'Failed to create project');
75+
76+
$project = $projectModel->getById(1);
77+
78+
$wikimodel = new Wiki($this->container);
79+
80+
// create wiki pages
81+
$this->assertEquals(1, $wikimodel->createpage($project['id'], "Home", "", '2015-01-01'), 1, 'Failed to a create wiki page home on project');
82+
$this->assertEquals(2, $wikimodel->createpage($project['id'], "Page 2", ""), 'Failed to a create wiki page 2 on project');
83+
$this->assertEquals(3, $wikimodel->createpage($project['id'], "Page 3", ""), 'Failed to a create wiki page 3 on project');
84+
$this->assertEquals(4, $wikimodel->createpage($project['id'], "Page 4", ""), 'Failed to a create wiki page 4 on project');
85+
$this->assertEquals(5, $wikimodel->createpage($project['id'], "Page 5", ""), 'Failed to a create wiki page 5 on project');
86+
87+
// reorder
88+
$wikimodel->reorderPages($project['id'], 5, 3);
89+
// expected by id
90+
$expectedColumnOrders = [1,2,4,5,3];
91+
92+
$wikiPages = $wikimodel->getWikipages($project['id']);
93+
$this->assertEquals(count($expectedColumnOrders), count($wikiPages), 'expected column order count doesn\'t match pages');
94+
95+
for ($i=0; $i < count($expectedColumnOrders); $i++) {
96+
$this->assertEquals($expectedColumnOrders[$wikiPages[$i]['id']-1], $wikiPages[$i]['ordercolumn'], 'Failed to reorder page id:'. $wikiPages[$i]['id']);
97+
}
98+
}
7199
}

0 commit comments

Comments
 (0)