X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fblazy%2Ftests%2Fsrc%2FUnit%2FForm%2FBlazyAdminFormatterUnitTest.php;fp=web%2Fmodules%2Fcontrib%2Fblazy%2Ftests%2Fsrc%2FUnit%2FForm%2FBlazyAdminFormatterUnitTest.php;h=e5f55998b41acc78cb6160f8c44129d424d823dc;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hp=0000000000000000000000000000000000000000;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/modules/contrib/blazy/tests/src/Unit/Form/BlazyAdminFormatterUnitTest.php b/web/modules/contrib/blazy/tests/src/Unit/Form/BlazyAdminFormatterUnitTest.php new file mode 100644 index 000000000..e5f55998b --- /dev/null +++ b/web/modules/contrib/blazy/tests/src/Unit/Form/BlazyAdminFormatterUnitTest.php @@ -0,0 +1,121 @@ +setUpUnitServices(); + $this->setUpUnitContainer(); + + $this->stringTranslation = $this->getMock('Drupal\Core\StringTranslation\TranslationInterface'); + $this->entityDisplayRepository = $this->getMock('Drupal\Core\Entity\EntityDisplayRepositoryInterface'); + $this->typedConfig = $this->getMock('Drupal\Core\Config\TypedConfigManagerInterface'); + $this->dateFormatter = $this->getMockBuilder('Drupal\Core\Datetime\DateFormatter') + ->disableOriginalConstructor() + ->getMock(); + + $container = new ContainerBuilder(); + $container->set('entity_display.repository', $this->entityDisplayRepository); + $container->set('config.typed', $this->typedConfig); + $container->set('string_translation', $this->getStringTranslationStub()); + $container->set('date.formatter', $this->dateFormatter); + + \Drupal::setContainer($container); + + $this->blazyAdminFormatter = new BlazyAdminFormatter( + $this->entityDisplayRepository, + $this->typedConfig, + $this->blazyManager + ); + } + + /** + * @covers ::buildSettingsForm + * @covers ::openingForm + * @covers ::imageStyleForm + * @covers ::mediaSwitchForm + * @covers ::gridForm + * @covers ::breakpointsForm + * @covers ::closingForm + * @covers ::finalizeForm + */ + public function testBuildSettingsForm() { + $form = []; + $definition = $this->getDefaulEntityFormatterDefinition() + $this->getDefaultFormatterDefinition(); + + $definition['settings'] += $this->getDefaultFields(TRUE); + + $this->blazyAdminFormatter->buildSettingsForm($form, $definition); + $this->assertArrayHasKey('closing', $form); + } + + /** + * Provider for ::testGetSettingsSummary. + */ + public function providerTestGetSettingsSummary() { + return [ + [FALSE, FALSE, FALSE, '', FALSE], + [TRUE, TRUE, TRUE, 'blazy_responsive_test', TRUE], + [TRUE, FALSE, FALSE, '', TRUE], + ]; + } + + /** + * Tests the Blazy admin ::getSettingsSummary(). + * + * @dataProvider providerTestGetSettingsSummary + */ + public function testGetSettingsSummary($use_settings, $vanilla, $override, $responsive_image_style, $expected) { + $definition = $this->getFormatterDefinition(); + $settings = array_merge(BlazyDefault::gridSettings(), $definition['settings']); + + $settings['vanilla'] = $vanilla; + $settings['image_syle'] = 'large'; + $settings['box_style'] = 'blazy_crop'; + $settings['thumbnail_style'] = 'thumbnail'; + $settings['optionset'] = 'default'; + $settings['override'] = $override; + $settings['overridables'] = ['foo' => 'foo', 'bar' => '0']; + $settings['responsive_image_style'] = $responsive_image_style; + $settings['caption'] = ['alt' => 'alt', 'title' => 'title']; + $settings['breakpoints'] = $this->getDataBreakpoints(TRUE); + + $definition['settings'] = $use_settings ? $settings : []; + + $summary = $this->blazyAdminFormatter->getSettingsSummary($definition); + $summary = array_filter($summary); + $check_summary = !$expected ? empty($summary) : !empty($summary); + + $this->assertTrue($check_summary); + } + +}