Code Duplication    Length = 88-88 lines in 2 locations

tests/php/controller/viewcontrollerTest.php 2 locations

@@ 353-440 (lines=88) @@
350
	/**
351
	 * @dataProvider indexPublicDataProvider
352
	 */
353
	public function testPublicIndex($serverVersion, $isIE, $shareeActions, $shareeCanEdit) {
354
		$this->request->expects($this->once())
355
			->method('isUserAgent')
356
			->with(['/(MSIE)|(Trident)/'])
357
			->will($this->returnValue($isIE));
358
359
		$this->config->expects($this->at(0))
360
			->method('getSystemValue')
361
			->with('version')
362
			->will($this->returnValue($serverVersion));
363
364
		$this->config->expects($this->at(1))
365
			->method('getAppValue')
366
			->with($this->appName, 'installed_version')
367
			->will($this->returnValue('42.13.37'));
368
369
		$this->config->expects($this->at(2))
370
			->method('getAppValue')
371
			->with('theming', 'color', '#0082C9')
372
			->will($this->returnValue('#ff00ff'));
373
374
		$this->config->expects($this->at(3))
375
			->method('getAppValue')
376
			->with('core', 'shareapi_allow_links', 'yes')
377
			->will($this->returnValue('no'));
378
379
		$this->request->expects($this->at(1))
380
			->method('getServerProtocol')
381
			->will($this->returnValue('fancy_protocol'));
382
383
		$this->request->expects($this->at(2))
384
			->method('getServerHost')
385
			->will($this->returnValue('nextcloud-host.tld'));
386
387
		$this->request->expects($this->at(3))
388
			->method('getRequestUri')
389
			->will($this->returnValue('/request/uri/123/42'));
390
391
		$this->urlGenerator->expects($this->at(0))
392
			->method('imagePath')
393
			->with('core', 'favicon-touch.png')
394
			->will($this->returnValue('/core/img/foo'));
395
396
		$this->urlGenerator->expects($this->at(1))
397
			->method('getAbsoluteURL')
398
			->with('/core/img/foo')
399
			->will($this->returnValue('fancy_protocol://foo.bar/core/img/foo'));
400
401
		$this->urlGenerator->expects($this->at(2))
402
			->method('linkTo')
403
			->with('', 'remote.php')
404
			->will($this->returnValue('remote.php'));
405
406
		$this->urlGenerator->expects($this->at(3))
407
			->method('getAbsoluteURL')
408
			->with('remote.php/dav/public-calendars/fancy_token_123?export')
409
			->will($this->returnValue('fancy_protocol://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export'));
410
411
		$this->request->expects($this->at(4))
412
			->method('getServerProtocol')
413
			->will($this->returnValue('fancy_protocol'));
414
415
		$actual = $this->controller->publicIndexForEmbedding('fancy_token_123');
416
417
		$this->assertInstanceOf('OCP\AppFramework\Http\TemplateResponse', $actual);
418
		$this->assertEquals([
419
			'appVersion' => '42.13.37',
420
			'initialView' => 'month',
421
			'emailAddress' => '',
422
			'skipPopover' => 'no',
423
			'weekNumbers' => 'no',
424
			'isPublic' => true,
425
			'isEmbedded' => true,
426
			'shareURL' => 'fancy_protocol://nextcloud-host.tld/request/uri/123/42',
427
			'previewImage' => 'fancy_protocol://foo.bar/core/img/foo',
428
			'firstRun' => 'no',
429
			'isIE' => $isIE,
430
			'defaultColor' => '#ff00ff',
431
			'webcalURL' => 'webcal://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export',
432
			'downloadURL' => 'fancy_protocol://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export',
433
			'token' => 'fancy_token_123',
434
			'shareeCanEditShares' => $shareeActions,
435
			'shareeCanEditCalendarProperties' => $shareeCanEdit,
436
			'canSharePublicLink' => 'no',
437
			'timezone' => 'automatic',
438
		], $actual->getParams());
439
		$this->assertEquals('main', $actual->getTemplateName());
440
	}
441
442
	/**
443
	 * @dataProvider indexPublicDataProvider
@@ 445-532 (lines=88) @@
442
	/**
443
	 * @dataProvider indexPublicDataProvider
444
	 */
445
	public function testPublicIndexWithBranding($serverVersion, $isIE, $shareeActions, $shareeCanEdit) {
446
		$this->request->expects($this->once())
447
			->method('isUserAgent')
448
			->with(['/(MSIE)|(Trident)/'])
449
			->will($this->returnValue($isIE));
450
451
		$this->config->expects($this->at(0))
452
			->method('getSystemValue')
453
			->with('version')
454
			->will($this->returnValue($serverVersion));
455
456
		$this->config->expects($this->at(1))
457
			->method('getAppValue')
458
			->with($this->appName, 'installed_version')
459
			->will($this->returnValue('42.13.37'));
460
461
		$this->config->expects($this->at(2))
462
			->method('getAppValue')
463
			->with('theming', 'color', '#0082C9')
464
			->will($this->returnValue('#ff00ff'));
465
466
		$this->config->expects($this->at(3))
467
			->method('getAppValue')
468
			->with('core', 'shareapi_allow_links', 'yes')
469
			->will($this->returnValue('no'));
470
471
		$this->request->expects($this->at(1))
472
			->method('getServerProtocol')
473
			->will($this->returnValue('fancy_protocol'));
474
475
		$this->request->expects($this->at(2))
476
			->method('getServerHost')
477
			->will($this->returnValue('nextcloud-host.tld'));
478
479
		$this->request->expects($this->at(3))
480
			->method('getRequestUri')
481
			->will($this->returnValue('/request/uri/123/42'));
482
483
		$this->urlGenerator->expects($this->at(0))
484
			->method('imagePath')
485
			->with('core', 'favicon-touch.png')
486
			->will($this->returnValue('/core/img/foo'));
487
488
		$this->urlGenerator->expects($this->at(1))
489
			->method('getAbsoluteURL')
490
			->with('/core/img/foo')
491
			->will($this->returnValue('fancy_protocol://foo.bar/core/img/foo'));
492
493
		$this->urlGenerator->expects($this->at(2))
494
			->method('linkTo')
495
			->with('', 'remote.php')
496
			->will($this->returnValue('remote.php'));
497
498
		$this->urlGenerator->expects($this->at(3))
499
			->method('getAbsoluteURL')
500
			->with('remote.php/dav/public-calendars/fancy_token_123?export')
501
			->will($this->returnValue('fancy_protocol://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export'));
502
503
		$this->request->expects($this->at(4))
504
			->method('getServerProtocol')
505
			->will($this->returnValue('fancy_protocol'));
506
507
		$actual = $this->controller->publicIndexWithBranding('fancy_token_123');
508
509
		$this->assertInstanceOf('OCP\AppFramework\Http\TemplateResponse', $actual);
510
		$this->assertEquals([
511
			'appVersion' => '42.13.37',
512
			'initialView' => 'month',
513
			'emailAddress' => '',
514
			'skipPopover' => 'no',
515
			'weekNumbers' => 'no',
516
			'isPublic' => true,
517
			'isEmbedded' => false,
518
			'shareURL' => 'fancy_protocol://nextcloud-host.tld/request/uri/123/42',
519
			'previewImage' => 'fancy_protocol://foo.bar/core/img/foo',
520
			'firstRun' => 'no',
521
			'isIE' => $isIE,
522
			'defaultColor' => '#ff00ff',
523
			'webcalURL' => 'webcal://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export',
524
			'downloadURL' => 'fancy_protocol://foo.bar/remote.php/dav/public-calendars/fancy_token_123?export',
525
			'token' => 'fancy_token_123',
526
			'shareeCanEditShares' => $shareeActions,
527
			'shareeCanEditCalendarProperties' => $shareeCanEdit,
528
			'canSharePublicLink' => 'no',
529
			'timezone' => 'automatic',
530
		], $actual->getParams());
531
		$this->assertEquals('public', $actual->getTemplateName());
532
	}
533
534
	public function indexPublicDataProvider() {
535
		return [