Code Duplication    Length = 77-77 lines in 2 locations

tests/WidgetAreaEditorTest.php 2 locations

@@ 265-341 (lines=77) @@
262
        $this->assertEquals($page->SideBar()->Widgets()->Count(), 0);
263
    }
264
265
    public function testEditingOneWidget()
266
    {
267
        // First get some widgets in there
268
        $data = array(
269
            Widget::class => array(
270
                'SideBar' => array(
271
                    'new-1' => array(
272
                        'Title' => 'MyTestWidgetSide',
273
                        'Type' => $this->widgetToTest,
274
                        'Sort' => 0
275
                    )
276
                ),
277
                'BottomBar' => array(
278
                    'new-1' => array(
279
                        'Title' => 'MyTestWidgetBottom',
280
                        'Type' => $this->widgetToTest,
281
                        'Sort' => 0
282
                    )
283
                )
284
            )
285
        );
286
        $request = new HTTPRequest('get', 'post', array(), $data);
287
288
        $editorSide = new WidgetAreaEditor('SideBar');
289
        $editorBott = new WidgetAreaEditor('BottomBar');
290
        $form = new Form(
291
            new ContentController(),
292
            Form::class,
293
            new FieldList($editorSide, $editorBott),
294
            new FieldList()
295
        );
296
        $form->setRequest($request);
297
        $page = new FakePage();
298
299
        $form->saveInto($page);
300
        $page->write();
301
        $page->flushCache();
302
        $page->BottomBar()->flushCache();
303
        $page->SideBar()->flushCache();
304
        $sideWidgets = $page->SideBar()->Widgets()->toArray();
305
        $bottWidgets = $page->BottomBar()->Widgets()->toArray();
306
307
        // Save again (after removing the SideBar's widget)
308
        $data = array(
309
            Widget::class => array(
310
                'SideBar' => array(
311
                    $sideWidgets[0]->ID => array(
312
                        'Title' => 'MyTestWidgetSide-edited',
313
                        'Type' => $this->widgetToTest,
314
                        'Sort' => 0
315
                    )
316
                ),
317
                'BottomBar' => array(
318
                    $bottWidgets[0]->ID => array(
319
                        'Title' => 'MyTestWidgetBottom',
320
                        'Type' => $this->widgetToTest,
321
                        'Sort' => 0
322
                    )
323
                )
324
            )
325
        );
326
        $request = new HTTPRequest('get', 'post', array(), $data);
327
        $form->setRequest($request);
328
        $form->saveInto($page);
329
330
        $page->write();
331
        $page->flushCache();
332
        $page->BottomBar()->flushCache();
333
        $page->SideBar()->flushCache();
334
        $sideWidgets = $page->SideBar()->Widgets()->toArray();
335
        $bottWidgets = $page->BottomBar()->Widgets()->toArray();
336
337
        $this->assertEquals($page->BottomBar()->Widgets()->Count(), 1);
338
        $this->assertEquals($page->SideBar()->Widgets()->Count(), 1);
339
        $this->assertEquals($bottWidgets[0]->getTitle(), 'MyTestWidgetBottom');
340
        $this->assertEquals($sideWidgets[0]->getTitle(), 'MyTestWidgetSide-edited');
341
    }
342
343
    public function testEditingAWidgetFromEachArea()
344
    {
@@ 343-419 (lines=77) @@
340
        $this->assertEquals($sideWidgets[0]->getTitle(), 'MyTestWidgetSide-edited');
341
    }
342
343
    public function testEditingAWidgetFromEachArea()
344
    {
345
        // First get some widgets in there
346
        $data = array(
347
            Widget::class => array(
348
                'SideBar' => array(
349
                    'new-1' => array(
350
                        'Title' => 'MyTestWidgetSide',
351
                        'Type' => $this->widgetToTest,
352
                        'Sort' => 0
353
                    )
354
                ),
355
                'BottomBar' => array(
356
                    'new-1' => array(
357
                        'Title' => 'MyTestWidgetBottom',
358
                        'Type' => $this->widgetToTest,
359
                        'Sort' => 0
360
                    )
361
                )
362
            )
363
        );
364
        $request = new HTTPRequest('get', 'post', array(), $data);
365
366
        $editorSide = new WidgetAreaEditor('SideBar');
367
        $editorBott = new WidgetAreaEditor('BottomBar');
368
        $form = new Form(
369
            new ContentController(),
370
            Form::class,
371
            new FieldList($editorSide, $editorBott),
372
            new FieldList()
373
        );
374
        $form->setRequest($request);
375
        $page = new FakePage();
376
377
        $form->saveInto($page);
378
        $page->write();
379
        $page->flushCache();
380
        $page->BottomBar()->flushCache();
381
        $page->SideBar()->flushCache();
382
        $sideWidgets = $page->SideBar()->Widgets()->toArray();
383
        $bottWidgets = $page->BottomBar()->Widgets()->toArray();
384
385
        // Save again (after removing the SideBar's widget)
386
        $data = array(
387
            Widget::class => array(
388
                'SideBar' => array(
389
                    $sideWidgets[0]->ID => array(
390
                        'Title' => 'MyTestWidgetSide-edited',
391
                        'Type' => $this->widgetToTest,
392
                        'Sort' => 0
393
                    )
394
                ),
395
                'BottomBar' => array(
396
                    $bottWidgets[0]->ID => array(
397
                        'Title' => 'MyTestWidgetBottom-edited',
398
                        'Type' => $this->widgetToTest,
399
                        'Sort' => 0
400
                    )
401
                )
402
            )
403
        );
404
        $request = new HTTPRequest('get', 'post', array(), $data);
405
        $form->setRequest($request);
406
        $form->saveInto($page);
407
408
        $page->write();
409
        $page->flushCache();
410
        $page->BottomBar()->flushCache();
411
        $page->SideBar()->flushCache();
412
        $sideWidgets = $page->SideBar()->Widgets()->toArray();
413
        $bottWidgets = $page->BottomBar()->Widgets()->toArray();
414
415
        $this->assertEquals($page->BottomBar()->Widgets()->Count(), 1);
416
        $this->assertEquals($page->SideBar()->Widgets()->Count(), 1);
417
        $this->assertEquals($bottWidgets[0]->getTitle(), 'MyTestWidgetBottom-edited');
418
        $this->assertEquals($sideWidgets[0]->getTitle(), 'MyTestWidgetSide-edited');
419
    }
420
421
    public function testEditAWidgetFromOneAreaAndDeleteAWidgetFromAnotherArea()
422
    {