Bläddra i källkod

Code mis en commentaire oublié.

bastien 12 år sedan
förälder
incheckning
85d6d739ff

+ 378 - 378
src/Muzich/CoreBundle/Tests/Controller/HomeControllerTest.php Visa fil

@@ -15,385 +15,385 @@ class HomeControllerTest extends FunctionalTest
15 15
   {
16 16
     $this->client = self::createClient();
17 17
     $this->connectUser('bux', 'toor');
18
-//
19
-//    // Présence du formulaire d'ajout d'un élément
20
-//    $this->exist('form[action="'.($url = $this->generateUrl('element_add')).'"]');
21
-//    $this->exist('form[action="'.$url.'"] input[id="element_add_name"]');
22
-//    $this->exist('form[action="'.$url.'"] input[id="element_add_url"]');
23
-//    $this->exist('form[action="'.$url.'"] input[type="submit"]');
24
-//    
25
-//    // Présence du formulaire de filtrage
26
-//    $this->exist('form[action="'.($url = $this->generateUrl('search_elements')).'"]');
27
-//    $this->exist('form[action="'.$url.'"] select[id="element_search_form_network"]');
28
-//    $this->exist('form[action="'.$url.'"] input[type="submit"]');
29
-//    
30
-//    $hardtek_id = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek')->getId();
31
-//    $tribe_id   = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe')->getId();
32
-//    
33
-//    // On récupére le formulaire de filtrage
34
-//    $form = $this->selectForm('form[action="'.$url.'"] input[type="submit"]');
35
-//    
36
-//    // On décoche les tags
37
-//    foreach ($this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findAll() as $tag)
38
-//    {
39
-//      $form['element_search_form[tags]['.$tag->getId().']']->untick();
40
-//    }
41
-//    
42
-//    // On met ce que l'on veut dans le form
43
-//    $form['element_search_form[network]'] = ElementSearcher::NETWORK_PUBLIC;
44
-//    $form['element_search_form[tags]['.$hardtek_id.']'] = $hardtek_id;
45
-//    $form['element_search_form[tags]['.$tribe_id.']'] = $tribe_id;
46
-//    $this->submit($form);
47
-//    
48
-//    $this->client->submit($form);
49
-//    
50
-//    $this->isResponseRedirection();
51
-//    $this->followRedirection();
52
-//    $this->isResponseSuccess();
53
-//    
54
-//    $this->assertTrue($this->getSession()->has('user.element_search.params'));
55
-//    $this->assertEquals(array(
56
-//        'network'   => ElementSearcher::NETWORK_PUBLIC,
57
-//        'tags'      => array(
58
-//          $hardtek_id, $tribe_id
59
-//        ),
60
-//        'count'     => $this->getContainer()->getParameter('search_default_count'),
61
-//        'user_id'   => null,
62
-//        'group_id'  => null,
63
-//        'favorite' => false
64
-//    ), $this->getSession()->get('user.element_search.params'));
65
-//    
66
-//    // On fabrique l'ElementSearcher correspondant
67
-//    $es = new ElementSearcher();
68
-//    $es->init($this->getSession()->get('user.element_search.params'));
69
-//    
70
-//    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
71
-//    {
72
-//      $this->exist('html:contains("'.$element->getName().'")');
73
-//    }
18
+
19
+    // Présence du formulaire d'ajout d'un élément
20
+    $this->exist('form[action="'.($url = $this->generateUrl('element_add')).'"]');
21
+    $this->exist('form[action="'.$url.'"] input[id="element_add_name"]');
22
+    $this->exist('form[action="'.$url.'"] input[id="element_add_url"]');
23
+    $this->exist('form[action="'.$url.'"] input[type="submit"]');
24
+    
25
+    // Présence du formulaire de filtrage
26
+    $this->exist('form[action="'.($url = $this->generateUrl('search_elements')).'"]');
27
+    $this->exist('form[action="'.$url.'"] select[id="element_search_form_network"]');
28
+    $this->exist('form[action="'.$url.'"] input[type="submit"]');
29
+    
30
+    $hardtek_id = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek')->getId();
31
+    $tribe_id   = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe')->getId();
32
+    
33
+    // On récupére le formulaire de filtrage
34
+    $form = $this->selectForm('form[action="'.$url.'"] input[type="submit"]');
35
+    
36
+    // On décoche les tags
37
+    foreach ($this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findAll() as $tag)
38
+    {
39
+      $form['element_search_form[tags]['.$tag->getId().']']->untick();
40
+    }
41
+    
42
+    // On met ce que l'on veut dans le form
43
+    $form['element_search_form[network]'] = ElementSearcher::NETWORK_PUBLIC;
44
+    $form['element_search_form[tags]['.$hardtek_id.']'] = $hardtek_id;
45
+    $form['element_search_form[tags]['.$tribe_id.']'] = $tribe_id;
46
+    $this->submit($form);
47
+    
48
+    $this->client->submit($form);
49
+    
50
+    $this->isResponseRedirection();
51
+    $this->followRedirection();
52
+    $this->isResponseSuccess();
53
+    
54
+    $this->assertTrue($this->getSession()->has('user.element_search.params'));
55
+    $this->assertEquals(array(
56
+        'network'   => ElementSearcher::NETWORK_PUBLIC,
57
+        'tags'      => array(
58
+          $hardtek_id, $tribe_id
59
+        ),
60
+        'count'     => $this->getContainer()->getParameter('search_default_count'),
61
+        'user_id'   => null,
62
+        'group_id'  => null,
63
+        'favorite' => false
64
+    ), $this->getSession()->get('user.element_search.params'));
65
+    
66
+    // On fabrique l'ElementSearcher correspondant
67
+    $es = new ElementSearcher();
68
+    $es->init($this->getSession()->get('user.element_search.params'));
69
+    
70
+    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
71
+    {
72
+      $this->exist('html:contains("'.$element->getName().'")');
73
+    }
74
+  }
75
+  
76
+  /**
77
+   * Test de la présence des elements sur la page d'un utilisateur
78
+   */
79
+  public function testUserPage()
80
+  {
81
+    $this->client = self::createClient();
82
+    $this->connectUser('bux', 'toor');
83
+    $jean = $this->getDoctrine()->getRepository('MuzichCoreBundle:User')
84
+      ->findOneByUsername('jean')
85
+    ;
86
+    
87
+    $this->crawler = $this->client->request(
88
+      'GET', 
89
+      $this->generateUrl('show_user', array('slug' => $jean->getSlug()))
90
+    );
91
+    
92
+    $this->isResponseSuccess();
93
+    $this->exist('h2:contains("'.$jean->getName().'")');
94
+    
95
+    $es = new ElementSearcher();
96
+    $es->init(array(
97
+      'user_id' => $jean->getId()
98
+    ));
99
+    
100
+    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
101
+    {
102
+      $this->exist('html:contains("'.$element->getName().'")');
103
+    }
104
+  }
105
+  
106
+  /**
107
+   * Test de la présence des elements sur la page d'un utilisateur
108
+   */
109
+  public function testGroupPage()
110
+  {
111
+    $this->client = self::createClient();
112
+    $this->connectUser('bux', 'toor');
113
+    $fdp = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')
114
+      ->findOneBySlug('fans-de-psytrance')
115
+      ->getSingleResult()
116
+    ;
117
+    
118
+    $this->crawler = $this->client->request(
119
+      'GET', 
120
+      $this->generateUrl('show_group', array('slug' => $fdp->getSlug()))
121
+    );
122
+    
123
+    $this->isResponseSuccess();
124
+    $this->exist('h2:contains("'.$fdp->getName().'")');
125
+    
126
+    $es = new ElementSearcher();
127
+    $es->init(array(
128
+      'group_id' => $fdp->getId()
129
+    ));
130
+    
131
+    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
132
+    {
133
+      $this->exist('html:contains("'.$element->getName().'")');
134
+    }
135
+  }
136
+  
137
+  /**
138
+   * Ajouts d'éléments et tests de cas refusés
139
+   */
140
+  public function testAddElementSuccess()
141
+  {
142
+    $this->client = self::createClient();
143
+    $this->connectUser('bux', 'toor');
144
+    
145
+    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
146
+    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
147
+    
148
+    /*
149
+     *  Ajout d'un élément avec succés
150
+     */
151
+    $this->procedure_add_element(
152
+      'Mon bel element', 
153
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
154
+      array($hardtek->getId(), $tribe->getId())
155
+    );
156
+    
157
+    $this->isResponseRedirection();
158
+    $this->followRedirection();
159
+    $this->isResponseSuccess();
160
+    
161
+    $this->exist('li:contains("Mon bel element")');
162
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
163
+      ->findOneByName('Mon bel element')
164
+    ;
165
+    $this->assertTrue(!is_null($element));
166
+        
74 167
   }
75 168
   
76
-//  /**
77
-//   * Test de la présence des elements sur la page d'un utilisateur
78
-//   */
79
-//  public function testUserPage()
80
-//  {
81
-//    $this->client = self::createClient();
82
-//    $this->connectUser('bux', 'toor');
83
-//    $jean = $this->getDoctrine()->getRepository('MuzichCoreBundle:User')
84
-//      ->findOneByUsername('jean')
85
-//    ;
86
-//    
87
-//    $this->crawler = $this->client->request(
88
-//      'GET', 
89
-//      $this->generateUrl('show_user', array('slug' => $jean->getSlug()))
90
-//    );
91
-//    
92
-//    $this->isResponseSuccess();
93
-//    $this->exist('h2:contains("'.$jean->getName().'")');
94
-//    
95
-//    $es = new ElementSearcher();
96
-//    $es->init(array(
97
-//      'user_id' => $jean->getId()
98
-//    ));
99
-//    
100
-//    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
101
-//    {
102
-//      $this->exist('html:contains("'.$element->getName().'")');
103
-//    }
104
-//  }
105
-//  
106
-//  /**
107
-//   * Test de la présence des elements sur la page d'un utilisateur
108
-//   */
109
-//  public function testGroupPage()
110
-//  {
111
-//    $this->client = self::createClient();
112
-//    $this->connectUser('bux', 'toor');
113
-//    $fdp = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')
114
-//      ->findOneBySlug('fans-de-psytrance')
115
-//      ->getSingleResult()
116
-//    ;
117
-//    
118
-//    $this->crawler = $this->client->request(
119
-//      'GET', 
120
-//      $this->generateUrl('show_group', array('slug' => $fdp->getSlug()))
121
-//    );
122
-//    
123
-//    $this->isResponseSuccess();
124
-//    $this->exist('h2:contains("'.$fdp->getName().'")');
125
-//    
126
-//    $es = new ElementSearcher();
127
-//    $es->init(array(
128
-//      'group_id' => $fdp->getId()
129
-//    ));
130
-//    
131
-//    foreach ($es->getElements($this->getDoctrine(), $this->getUser()->getId()) as $element)
132
-//    {
133
-//      $this->exist('html:contains("'.$element->getName().'")');
134
-//    }
135
-//  }
136
-//  
137
-//  /**
138
-//   * Ajouts d'éléments et tests de cas refusés
139
-//   */
140
-//  public function testAddElementSuccess()
141
-//  {
142
-//    $this->client = self::createClient();
143
-//    $this->connectUser('bux', 'toor');
144
-//    
145
-//    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
146
-//    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
147
-//    
148
-//    /*
149
-//     *  Ajout d'un élément avec succés
150
-//     */
151
-//    $this->procedure_add_element(
152
-//      'Mon bel element', 
153
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
154
-//      array($hardtek->getId(), $tribe->getId())
155
-//    );
156
-//    
157
-//    $this->isResponseRedirection();
158
-//    $this->followRedirection();
159
-//    $this->isResponseSuccess();
160
-//    
161
-//    $this->exist('li:contains("Mon bel element")');
162
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
163
-//      ->findOneByName('Mon bel element')
164
-//    ;
165
-//    $this->assertTrue(!is_null($element));
166
-//        
167
-//  }
168
-//  
169
-//  /**
170
-//   * Ajouts d'éléments et tests de cas refusés
171
-//   */
172
-//  public function testAddElementFailure()
173
-//  {
174
-//    $this->client = self::createClient();
175
-//    $this->connectUser('bux', 'toor');
176
-//    
177
-//    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
178
-//    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
179
-//    
180
-//    /*
181
-//     *  Ajouts d'éléments avec echec
182
-//     */
183
-//    
184
-//    // Nom trop court
185
-//    $this->procedure_add_element(
186
-//      'Mo', 
187
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
188
-//      array($hardtek->getId(), $tribe->getId())
189
-//    );
190
-//    
191
-//    $this->isResponseSuccess();
192
-//        
193
-//    $this->notExist('li:contains("Mon bel element a4er563a1r")');
194
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
195
-//      ->findOneByName('Mon bel element a4er563a1r')
196
-//    ;
197
-//    $this->assertTrue(is_null($element));
198
-//    
199
-//    // Nom trop long
200
-//    $this->procedure_add_element(
201
-//      'Mon bel element mais qui a un nom trop court la vache oui trop long hohoho', 
202
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
203
-//      array($hardtek->getId(), $tribe->getId())
204
-//    );
205
-//    
206
-//    $this->isResponseSuccess();
207
-//    
208
-//    $this->notExist('li:contains("Mon bel element mais qui a un nom trop court la vache oui trop long hohoho")');
209
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
210
-//      ->findOneByName('Mon bel element mais qui a un nom trop court la vache oui trop long hohoho')
211
-//    ;
212
-//    $this->assertTrue(is_null($element));
213
-//    
214
-//    // Pas d'url
215
-//    $this->procedure_add_element(
216
-//      'Mon bel element', 
217
-//      '', 
218
-//      array($hardtek->getId(), $tribe->getId())
219
-//    );
220
-//    
221
-//    $this->isResponseSuccess();
222
-//    
223
-//    $this->notExist('li:contains("Mon bel element gfez7f")');
224
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
225
-//      ->findOneByName('Mon bel element gfez7f')
226
-//    ;
227
-//    $this->assertTrue(is_null($element));
228
-//    
229
-//    // url non conforme
230
-//    $this->procedure_add_element(
231
-//      'Mon bel element 789e', 
232
-//      'http://', 
233
-//      array($hardtek->getId(), $tribe->getId())
234
-//    );
235
-//    
236
-//    $this->isResponseSuccess();
237
-//    
238
-//    $this->notExist('li:contains("Mon bel element 789e")');
239
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
240
-//      ->findOneByName('Mon bel element 789e')
241
-//    ;
242
-//    $this->assertTrue(is_null($element));
243
-//    
244
-//    // url non conforme
245
-//    $this->procedure_add_element(
246
-//      'Mon bel element 789f', 
247
-//      'http://youtube', 
248
-//      array($hardtek->getId(), $tribe->getId())
249
-//    );
250
-//    
251
-//    $this->isResponseSuccess();
252
-//    
253
-//    $this->notExist('li:contains("Mon bel element 789f")');
254
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
255
-//      ->findOneByName('Mon bel element 789f')
256
-//    ;
257
-//    $this->assertTrue(is_null($element));
258
-//    
259
-//    // url non conforme
260
-//    $this->procedure_add_element(
261
-//      'Mon bel element 789g', 
262
-//      'youtube.com?lalala', 
263
-//      array($hardtek->getId(), $tribe->getId())
264
-//    );
265
-//    
266
-//    $this->isResponseSuccess();
267
-//    
268
-//    $this->notExist('li:contains("Mon bel element 789g")');
269
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
270
-//      ->findOneByName('Mon bel element 789g')
271
-//    ;
272
-//    $this->assertTrue(is_null($element));
273
-//    
274
-//    // Pas de nom
275
-//    $this->procedure_add_element(
276
-//      '', 
277
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
278
-//      array($hardtek->getId(), $tribe->getId())
279
-//    );
280
-//    
281
-//    $this->isResponseSuccess();
282
-//    
283
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
284
-//      ->findOneByName('')
285
-//    ;
286
-//    $this->assertTrue(is_null($element));
287
-//    
288
-//  }
289
-//  
290
-//  /**
291
-//   * L'ajout d'un Element a un de ses groupe ne doit pas poser de problème
292
-//   */
293
-//  public function testAddElementAtMyGroupSuccess()
294
-//  {
295
-//    $this->client = self::createClient();
296
-//    $this->connectUser('bux', 'toor');
297
-//    // Un groupe open, donc pas de soucis
298
-//    $fan_de_psy = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('Fans de psytrance');
299
-//    
300
-//    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
301
-//    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
302
-//        
303
-//    $this->isResponseSuccess();
304
-//    $this->procedure_add_element(
305
-//      'Element mis dans le groupe de psytrance', 
306
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
307
-//      array($hardtek->getId(), $tribe->getId()),
308
-//      $fan_de_psy->getSlug()
309
-//    );
310
-//    
311
-//    $this->isResponseRedirection();
312
-//    $this->followRedirection();
313
-//    $this->isResponseSuccess();
314
-//    
315
-//    $this->exist('li:contains("Element mis dans le groupe de psytrance")');
316
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
317
-//      ->findOneByName('Element mis dans le groupe de psytrance')
318
-//    ;
319
-//    $this->assertTrue(!is_null($element));
320
-//    
321
-//    if (!is_null($element))
322
-//    {
323
-//      $this->assertEquals($fan_de_psy->getId(), $element->getGroup()->getId());
324
-//    }
325
-//    else
326
-//    {
327
-//      $this->assertTrue(false);
328
-//    }
329
-//    
330
-//    $this->disconnectUser();
331
-//    
332
-//    /*
333
-//     * Ajout d'un element dans un groupe que l'on posséde.
334
-//     */
335
-//    $this->client = self::createClient();
336
-//    $this->connectUser('joelle', 'toor');
337
-//    $this->isResponseSuccess();
338
-//    
339
-//    // Ce groupe appartient a joelle
340
-//    $groupe_de_joelle = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('Le groupe de joelle');
341
-//    
342
-//    $this->procedure_add_element(
343
-//      'Element mis dans le groupe de joelle', 
344
-//      'http://www.youtube.com/watch?v=WC8qb_of04E', 
345
-//      array($hardtek->getId(), $tribe->getId()),
346
-//      $groupe_de_joelle->getSlug()
347
-//    );
348
-//    
349
-//    $this->isResponseRedirection();
350
-//    $this->followRedirection();
351
-//    $this->isResponseSuccess();
352
-//    
353
-//    $this->exist('li:contains("Element mis dans le groupe de joelle")');
354
-//    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
355
-//      ->findOneByName('Element mis dans le groupe de joelle')
356
-//    ;
357
-//    $this->assertTrue(!is_null($element));
358
-//    
359
-//    if (!is_null($element))
360
-//    {
361
-//      $this->assertEquals($groupe_de_joelle->getId(), $element->getGroup()->getId());
362
-//    }
363
-//    else
364
-//    {
365
-//      $this->assertTrue(false);
366
-//    }
367
-//  }
368
-//  
369
-//  /**
370
-//   * L'ajout a un group qui n'est pas a sois, ou qui n'est pas open
371
-//   * doit être impossible.
372
-//   */
373
-//  public function testAddElementAtGroupFailure()
374
-//  {
375
-//    $this->client = self::createClient();
376
-//    $this->connectUser('bux', 'toor');
377
-//    // Un groupe no open
378
-//    $dudeldrum = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('DUDELDRUM');
379
-//    
380
-//    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
381
-//    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
382
-//        
383
-//    // Nous tentons d'ouvrir l'url d'ajout d'élément avec un groupe qui n'est pas ouvert
384
-//    // et qui n'appartient pas a l'utilisateur connecté
385
-//    $this->crawler = $this->client->request(
386
-//      'POST', 
387
-//      $this->generateUrl('element_add', array('group_slug' => $dudeldrum->getSlug())),
388
-//      array(
389
-//        'element_add[name]' => 'Yohoho trululu',
390
-//        'element_add[url]'  => 'http://www.youtube.com/watch?v=WC8qb_of04E',
391
-//        'element_add[tags]['.$hardtek->getId().']' => $hardtek->getId(),
392
-//        'element_add[tags]['.$tribe->getId().']' => $tribe->getId()
393
-//      )
394
-//    );
395
-//    
396
-//    $this->isResponseNotFound();
397
-//  }
169
+  /**
170
+   * Ajouts d'éléments et tests de cas refusés
171
+   */
172
+  public function testAddElementFailure()
173
+  {
174
+    $this->client = self::createClient();
175
+    $this->connectUser('bux', 'toor');
176
+    
177
+    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
178
+    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
179
+    
180
+    /*
181
+     *  Ajouts d'éléments avec echec
182
+     */
183
+    
184
+    // Nom trop court
185
+    $this->procedure_add_element(
186
+      'Mo', 
187
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
188
+      array($hardtek->getId(), $tribe->getId())
189
+    );
190
+    
191
+    $this->isResponseSuccess();
192
+        
193
+    $this->notExist('li:contains("Mon bel element a4er563a1r")');
194
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
195
+      ->findOneByName('Mon bel element a4er563a1r')
196
+    ;
197
+    $this->assertTrue(is_null($element));
198
+    
199
+    // Nom trop long
200
+    $this->procedure_add_element(
201
+      'Mon bel element mais qui a un nom trop court la vache oui trop long hohoho', 
202
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
203
+      array($hardtek->getId(), $tribe->getId())
204
+    );
205
+    
206
+    $this->isResponseSuccess();
207
+    
208
+    $this->notExist('li:contains("Mon bel element mais qui a un nom trop court la vache oui trop long hohoho")');
209
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
210
+      ->findOneByName('Mon bel element mais qui a un nom trop court la vache oui trop long hohoho')
211
+    ;
212
+    $this->assertTrue(is_null($element));
213
+    
214
+    // Pas d'url
215
+    $this->procedure_add_element(
216
+      'Mon bel element', 
217
+      '', 
218
+      array($hardtek->getId(), $tribe->getId())
219
+    );
220
+    
221
+    $this->isResponseSuccess();
222
+    
223
+    $this->notExist('li:contains("Mon bel element gfez7f")');
224
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
225
+      ->findOneByName('Mon bel element gfez7f')
226
+    ;
227
+    $this->assertTrue(is_null($element));
228
+    
229
+    // url non conforme
230
+    $this->procedure_add_element(
231
+      'Mon bel element 789e', 
232
+      'http://', 
233
+      array($hardtek->getId(), $tribe->getId())
234
+    );
235
+    
236
+    $this->isResponseSuccess();
237
+    
238
+    $this->notExist('li:contains("Mon bel element 789e")');
239
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
240
+      ->findOneByName('Mon bel element 789e')
241
+    ;
242
+    $this->assertTrue(is_null($element));
243
+    
244
+    // url non conforme
245
+    $this->procedure_add_element(
246
+      'Mon bel element 789f', 
247
+      'http://youtube', 
248
+      array($hardtek->getId(), $tribe->getId())
249
+    );
250
+    
251
+    $this->isResponseSuccess();
252
+    
253
+    $this->notExist('li:contains("Mon bel element 789f")');
254
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
255
+      ->findOneByName('Mon bel element 789f')
256
+    ;
257
+    $this->assertTrue(is_null($element));
258
+    
259
+    // url non conforme
260
+    $this->procedure_add_element(
261
+      'Mon bel element 789g', 
262
+      'youtube.com?lalala', 
263
+      array($hardtek->getId(), $tribe->getId())
264
+    );
265
+    
266
+    $this->isResponseSuccess();
267
+    
268
+    $this->notExist('li:contains("Mon bel element 789g")');
269
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
270
+      ->findOneByName('Mon bel element 789g')
271
+    ;
272
+    $this->assertTrue(is_null($element));
273
+    
274
+    // Pas de nom
275
+    $this->procedure_add_element(
276
+      '', 
277
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
278
+      array($hardtek->getId(), $tribe->getId())
279
+    );
280
+    
281
+    $this->isResponseSuccess();
282
+    
283
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
284
+      ->findOneByName('')
285
+    ;
286
+    $this->assertTrue(is_null($element));
287
+    
288
+  }
289
+  
290
+  /**
291
+   * L'ajout d'un Element a un de ses groupe ne doit pas poser de problème
292
+   */
293
+  public function testAddElementAtMyGroupSuccess()
294
+  {
295
+    $this->client = self::createClient();
296
+    $this->connectUser('bux', 'toor');
297
+    // Un groupe open, donc pas de soucis
298
+    $fan_de_psy = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('Fans de psytrance');
299
+    
300
+    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
301
+    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
302
+        
303
+    $this->isResponseSuccess();
304
+    $this->procedure_add_element(
305
+      'Element mis dans le groupe de psytrance', 
306
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
307
+      array($hardtek->getId(), $tribe->getId()),
308
+      $fan_de_psy->getSlug()
309
+    );
310
+    
311
+    $this->isResponseRedirection();
312
+    $this->followRedirection();
313
+    $this->isResponseSuccess();
314
+    
315
+    $this->exist('li:contains("Element mis dans le groupe de psytrance")');
316
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
317
+      ->findOneByName('Element mis dans le groupe de psytrance')
318
+    ;
319
+    $this->assertTrue(!is_null($element));
320
+    
321
+    if (!is_null($element))
322
+    {
323
+      $this->assertEquals($fan_de_psy->getId(), $element->getGroup()->getId());
324
+    }
325
+    else
326
+    {
327
+      $this->assertTrue(false);
328
+    }
329
+    
330
+    $this->disconnectUser();
331
+    
332
+    /*
333
+     * Ajout d'un element dans un groupe que l'on posséde.
334
+     */
335
+    $this->client = self::createClient();
336
+    $this->connectUser('joelle', 'toor');
337
+    $this->isResponseSuccess();
338
+    
339
+    // Ce groupe appartient a joelle
340
+    $groupe_de_joelle = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('Le groupe de joelle');
341
+    
342
+    $this->procedure_add_element(
343
+      'Element mis dans le groupe de joelle', 
344
+      'http://www.youtube.com/watch?v=WC8qb_of04E', 
345
+      array($hardtek->getId(), $tribe->getId()),
346
+      $groupe_de_joelle->getSlug()
347
+    );
348
+    
349
+    $this->isResponseRedirection();
350
+    $this->followRedirection();
351
+    $this->isResponseSuccess();
352
+    
353
+    $this->exist('li:contains("Element mis dans le groupe de joelle")');
354
+    $element = $this->getDoctrine()->getRepository('MuzichCoreBundle:Element')
355
+      ->findOneByName('Element mis dans le groupe de joelle')
356
+    ;
357
+    $this->assertTrue(!is_null($element));
358
+    
359
+    if (!is_null($element))
360
+    {
361
+      $this->assertEquals($groupe_de_joelle->getId(), $element->getGroup()->getId());
362
+    }
363
+    else
364
+    {
365
+      $this->assertTrue(false);
366
+    }
367
+  }
368
+  
369
+  /**
370
+   * L'ajout a un group qui n'est pas a sois, ou qui n'est pas open
371
+   * doit être impossible.
372
+   */
373
+  public function testAddElementAtGroupFailure()
374
+  {
375
+    $this->client = self::createClient();
376
+    $this->connectUser('bux', 'toor');
377
+    // Un groupe no open
378
+    $dudeldrum = $this->getDoctrine()->getRepository('MuzichCoreBundle:Group')->findOneByName('DUDELDRUM');
379
+    
380
+    $hardtek = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Hardtek');
381
+    $tribe = $this->getDoctrine()->getRepository('MuzichCoreBundle:Tag')->findOneByName('Tribe');
382
+        
383
+    // Nous tentons d'ouvrir l'url d'ajout d'élément avec un groupe qui n'est pas ouvert
384
+    // et qui n'appartient pas a l'utilisateur connecté
385
+    $this->crawler = $this->client->request(
386
+      'POST', 
387
+      $this->generateUrl('element_add', array('group_slug' => $dudeldrum->getSlug())),
388
+      array(
389
+        'element_add[name]' => 'Yohoho trululu',
390
+        'element_add[url]'  => 'http://www.youtube.com/watch?v=WC8qb_of04E',
391
+        'element_add[tags]['.$hardtek->getId().']' => $hardtek->getId(),
392
+        'element_add[tags]['.$tribe->getId().']' => $tribe->getId()
393
+      )
394
+    );
395
+    
396
+    $this->isResponseNotFound();
397
+  }
398 398
   
399 399
 }

+ 14 - 14
src/Muzich/CoreBundle/lib/FunctionalTest.php Visa fil

@@ -56,20 +56,20 @@ class FunctionalTest extends WebTestCase
56 56
     $form['_password'] = $password;
57 57
     $form['_remember_me'] = true;
58 58
     $this->submit($form);
59
-//
60
-//    $this->isResponseRedirection();
61
-//    $this->followRedirection();
62
-//    $this->isResponseSuccess();
63
-//
64
-//    $user = $this->getUser();
65
-//    if ('anon.' != $user)
66
-//    {
67
-//      $this->assertEquals($login, $user->getUsername());
68
-//    }
69
-//    else
70
-//    {
71
-//      $this->assertTrue(false);
72
-//    }
59
+
60
+    $this->isResponseRedirection();
61
+    $this->followRedirection();
62
+    $this->isResponseSuccess();
63
+
64
+    $user = $this->getUser();
65
+    if ('anon.' != $user)
66
+    {
67
+      $this->assertEquals($login, $user->getUsername());
68
+    }
69
+    else
70
+    {
71
+      $this->assertTrue(false);
72
+    }
73 73
   }
74 74
   
75 75
   protected function disconnectUser()