diff options
3 files changed, 52 insertions, 22 deletions
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 87b9befe..0e82b9b2 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php | |||
@@ -161,4 +161,40 @@ class EntryRepository extends EntityRepository | |||
161 | 161 | ||
162 | return $languages; | 162 | return $languages; |
163 | } | 163 | } |
164 | |||
165 | /** | ||
166 | * Used only in test case to get the right entry associated to the right user | ||
167 | * | ||
168 | * @param string $username | ||
169 | * | ||
170 | * @return Entry | ||
171 | */ | ||
172 | public function findOneByUsernameAndNotStarred($username) | ||
173 | { | ||
174 | return $this->createQueryBuilder('e') | ||
175 | ->leftJoin('e.user', 'u') | ||
176 | ->where('u.username = :username')->setParameter('username', $username) | ||
177 | ->andWhere('e.isStarred = false') | ||
178 | ->setMaxResults(1) | ||
179 | ->getQuery() | ||
180 | ->getSingleResult(); | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * Used only in test case to get the right entry associated to the right user | ||
185 | * | ||
186 | * @param string $username | ||
187 | * | ||
188 | * @return Entry | ||
189 | */ | ||
190 | public function findOneByUsernameAndNotArchived($username) | ||
191 | { | ||
192 | return $this->createQueryBuilder('e') | ||
193 | ->leftJoin('e.user', 'u') | ||
194 | ->where('u.username = :username')->setParameter('username', $username) | ||
195 | ->andWhere('e.isArchived = false') | ||
196 | ->setMaxResults(1) | ||
197 | ->getQuery() | ||
198 | ->getSingleResult(); | ||
199 | } | ||
164 | } | 200 | } |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php index cbd84a97..456c747a 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php | |||
@@ -101,7 +101,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
101 | $content = $client->getContainer() | 101 | $content = $client->getContainer() |
102 | ->get('doctrine.orm.entity_manager') | 102 | ->get('doctrine.orm.entity_manager') |
103 | ->getRepository('WallabagCoreBundle:Entry') | 103 | ->getRepository('WallabagCoreBundle:Entry') |
104 | ->findOneByIsArchived(false); | 104 | ->findOneByUsernameAndNotArchived('admin'); |
105 | 105 | ||
106 | $client->request('GET', '/view/'.$content->getId()); | 106 | $client->request('GET', '/view/'.$content->getId()); |
107 | 107 | ||
@@ -117,7 +117,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
117 | $content = $client->getContainer() | 117 | $content = $client->getContainer() |
118 | ->get('doctrine.orm.entity_manager') | 118 | ->get('doctrine.orm.entity_manager') |
119 | ->getRepository('WallabagCoreBundle:Entry') | 119 | ->getRepository('WallabagCoreBundle:Entry') |
120 | ->findOneByIsArchived(false); | 120 | ->findOneByUsernameAndNotArchived('admin'); |
121 | 121 | ||
122 | $crawler = $client->request('GET', '/edit/'.$content->getId()); | 122 | $crawler = $client->request('GET', '/edit/'.$content->getId()); |
123 | 123 | ||
@@ -135,7 +135,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
135 | $content = $client->getContainer() | 135 | $content = $client->getContainer() |
136 | ->get('doctrine.orm.entity_manager') | 136 | ->get('doctrine.orm.entity_manager') |
137 | ->getRepository('WallabagCoreBundle:Entry') | 137 | ->getRepository('WallabagCoreBundle:Entry') |
138 | ->findOneByIsArchived(false); | 138 | ->findOneByUsernameAndNotArchived('admin'); |
139 | 139 | ||
140 | $crawler = $client->request('GET', '/edit/'.$content->getId()); | 140 | $crawler = $client->request('GET', '/edit/'.$content->getId()); |
141 | 141 | ||
@@ -165,7 +165,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
165 | $content = $client->getContainer() | 165 | $content = $client->getContainer() |
166 | ->get('doctrine.orm.entity_manager') | 166 | ->get('doctrine.orm.entity_manager') |
167 | ->getRepository('WallabagCoreBundle:Entry') | 167 | ->getRepository('WallabagCoreBundle:Entry') |
168 | ->findOneByIsArchived(false); | 168 | ->findOneByUsernameAndNotArchived('admin'); |
169 | 169 | ||
170 | $client->request('GET', '/archive/'.$content->getId()); | 170 | $client->request('GET', '/archive/'.$content->getId()); |
171 | 171 | ||
@@ -174,7 +174,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
174 | $res = $client->getContainer() | 174 | $res = $client->getContainer() |
175 | ->get('doctrine.orm.entity_manager') | 175 | ->get('doctrine.orm.entity_manager') |
176 | ->getRepository('WallabagCoreBundle:Entry') | 176 | ->getRepository('WallabagCoreBundle:Entry') |
177 | ->findOneById($content->getId()); | 177 | ->find($content->getId()); |
178 | 178 | ||
179 | $this->assertEquals($res->isArchived(), true); | 179 | $this->assertEquals($res->isArchived(), true); |
180 | } | 180 | } |
@@ -187,7 +187,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
187 | $content = $client->getContainer() | 187 | $content = $client->getContainer() |
188 | ->get('doctrine.orm.entity_manager') | 188 | ->get('doctrine.orm.entity_manager') |
189 | ->getRepository('WallabagCoreBundle:Entry') | 189 | ->getRepository('WallabagCoreBundle:Entry') |
190 | ->findOneByIsStarred(false); | 190 | ->findOneByUsernameAndNotStarred('admin'); |
191 | 191 | ||
192 | $client->request('GET', '/star/'.$content->getId()); | 192 | $client->request('GET', '/star/'.$content->getId()); |
193 | 193 | ||
@@ -209,7 +209,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
209 | $content = $client->getContainer() | 209 | $content = $client->getContainer() |
210 | ->get('doctrine.orm.entity_manager') | 210 | ->get('doctrine.orm.entity_manager') |
211 | ->getRepository('WallabagCoreBundle:Entry') | 211 | ->getRepository('WallabagCoreBundle:Entry') |
212 | ->findOneByIsStarred(false); | 212 | ->findOneByUsernameAndNotStarred('admin'); |
213 | 213 | ||
214 | $client->request('GET', '/delete/'.$content->getId()); | 214 | $client->request('GET', '/delete/'.$content->getId()); |
215 | 215 | ||
@@ -222,21 +222,15 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
222 | 222 | ||
223 | public function testViewOtherUserEntry() | 223 | public function testViewOtherUserEntry() |
224 | { | 224 | { |
225 | $this->logInAs('bob'); | 225 | $this->logInAs('admin'); |
226 | $client = $this->getClient(); | 226 | $client = $this->getClient(); |
227 | 227 | ||
228 | $content = $client->getContainer() | 228 | $content = $client->getContainer() |
229 | ->get('doctrine.orm.entity_manager') | 229 | ->get('doctrine.orm.entity_manager') |
230 | ->getRepository('WallabagCoreBundle:Entry') | 230 | ->getRepository('WallabagCoreBundle:Entry') |
231 | ->createQueryBuilder('e') | 231 | ->findOneByUsernameAndNotArchived('bob'); |
232 | ->select('e.id') | ||
233 | ->leftJoin('e.user', 'u') | ||
234 | ->where('u.username != :username')->setParameter('username', 'bob') | ||
235 | ->setMaxResults(1) | ||
236 | ->getQuery() | ||
237 | ->getSingleResult(AbstractQuery::HYDRATE_ARRAY); | ||
238 | 232 | ||
239 | $client->request('GET', '/view/'.$content['id']); | 233 | $client->request('GET', '/view/'.$content->getId()); |
240 | 234 | ||
241 | $this->assertEquals(403, $client->getResponse()->getStatusCode()); | 235 | $this->assertEquals(403, $client->getResponse()->getStatusCode()); |
242 | } | 236 | } |
@@ -360,7 +354,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
360 | $form['entry_filter[isStarred]']->untick(); | 354 | $form['entry_filter[isStarred]']->untick(); |
361 | 355 | ||
362 | $crawler = $client->submit($form); | 356 | $crawler = $client->submit($form); |
363 | $this->assertCount(2, $crawler->filter('div[class=entry]')); | 357 | $this->assertCount(1, $crawler->filter('div[class=entry]')); |
364 | 358 | ||
365 | $form = $crawler->filter('button[id=submit-filter]')->form(); | 359 | $form = $crawler->filter('button[id=submit-filter]')->form(); |
366 | $form['entry_filter[isArchived]']->untick(); | 360 | $form['entry_filter[isArchived]']->untick(); |
@@ -391,11 +385,11 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
391 | $crawler = $client->request('GET', '/unread/list'); | 385 | $crawler = $client->request('GET', '/unread/list'); |
392 | $form = $crawler->filter('button[id=submit-filter]')->form(); | 386 | $form = $crawler->filter('button[id=submit-filter]')->form(); |
393 | $data = array( | 387 | $data = array( |
394 | 'entry_filter[language]' => 'de', | 388 | 'entry_filter[language]' => 'fr', |
395 | ); | 389 | ); |
396 | 390 | ||
397 | $crawler = $client->submit($form, $data); | 391 | $crawler = $client->submit($form, $data); |
398 | $this->assertCount(1, $crawler->filter('div[class=entry]')); | 392 | $this->assertCount(3, $crawler->filter('div[class=entry]')); |
399 | 393 | ||
400 | $form = $crawler->filter('button[id=submit-filter]')->form(); | 394 | $form = $crawler->filter('button[id=submit-filter]')->form(); |
401 | $data = array( | 395 | $data = array( |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php index d25b2db5..dc93dd6b 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php | |||
@@ -24,7 +24,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
24 | $entry = $client->getContainer() | 24 | $entry = $client->getContainer() |
25 | ->get('doctrine.orm.entity_manager') | 25 | ->get('doctrine.orm.entity_manager') |
26 | ->getRepository('WallabagCoreBundle:Entry') | 26 | ->getRepository('WallabagCoreBundle:Entry') |
27 | ->findOneBy(array()); | 27 | ->findOneByUsernameAndNotArchived('admin'); |
28 | 28 | ||
29 | $crawler = $client->request('GET', '/view/'.$entry->getId()); | 29 | $crawler = $client->request('GET', '/view/'.$entry->getId()); |
30 | 30 | ||
@@ -46,7 +46,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
46 | $newEntry = $client->getContainer() | 46 | $newEntry = $client->getContainer() |
47 | ->get('doctrine.orm.entity_manager') | 47 | ->get('doctrine.orm.entity_manager') |
48 | ->getRepository('WallabagCoreBundle:Entry') | 48 | ->getRepository('WallabagCoreBundle:Entry') |
49 | ->findOneById($entry->getId()); | 49 | ->find($entry->getId()); |
50 | 50 | ||
51 | $this->assertEquals(1, count($newEntry->getTags())); | 51 | $this->assertEquals(1, count($newEntry->getTags())); |
52 | 52 | ||
@@ -61,7 +61,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
61 | $newEntry = $client->getContainer() | 61 | $newEntry = $client->getContainer() |
62 | ->get('doctrine.orm.entity_manager') | 62 | ->get('doctrine.orm.entity_manager') |
63 | ->getRepository('WallabagCoreBundle:Entry') | 63 | ->getRepository('WallabagCoreBundle:Entry') |
64 | ->findOneById($entry->getId()); | 64 | ->find($entry->getId()); |
65 | 65 | ||
66 | $this->assertEquals(2, count($newEntry->getTags())); | 66 | $this->assertEquals(2, count($newEntry->getTags())); |
67 | } | 67 | } |