View source
<?php
namespace Drupal\Tests\varbase_styleguide\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\vmi\ViewModesInventoryFactory;
class VarbaseStyleGuideTest extends WebDriverTestBase {
use StringTranslationTrait;
protected $profile = 'minimal';
protected $defaultTheme = 'vartheme_bs4';
protected static $modules = [
'user',
'filter',
'toolbar',
'block',
'views',
'node',
'filter',
'editor',
'ckeditor',
'field',
'field_ui',
'layout_discovery',
'ds',
'ds_extras',
'field_group',
'smart_trim',
'media',
'vmi',
'varbase_styleguide',
];
protected function setUp() : void {
parent::setUp();
$this->container
->get('theme_installer')
->install([
'claro',
]);
$this
->config('system.theme')
->set('admin', 'claro')
->save();
drupal_flush_all_caches();
$this
->drupalLogin($this->rootUser);
$this->testContentType = $this
->drupalCreateContentType([
'type' => 'post',
'name' => 'Post',
]);
$storage = FieldStorageConfig::create([
'entity_type' => 'node',
'field_name' => 'field_image',
'type' => 'entity_reference',
'settings' => [
'target_type' => 'media',
],
]);
$storage
->save();
FieldConfig::create([
'field_storage' => $storage,
'entity_type' => 'node',
'bundle' => 'post',
'label' => 'Main image',
'settings' => [
'handler_settings' => [
'target_bundles' => [
'image' => 'image',
],
],
],
])
->save();
drupal_flush_all_caches();
$this
->drupalCreateNode([
'title' => 'Post - Test Content',
'type' => 'post',
'body' => [
[
'value' => 'Varbase is an enhanced Drupal distribution packed with adaptive
functionalities and essential modules, that speed up your development,
and provides you with standardized configurations, making your life easier.
The essence of Varbase, lies within the basic concept that initiated it;
DRY (Don’t Repeat Yourself). Varbase handles that for you, relieving you
from repeating all the modules, features, configurations that are included
in every Drupal project.',
],
],
]);
}
public function testCheckVarbaseStyleGuideOnCustomElementsForVartheme() {
$this
->drupalGet('admin/appearance/styleguide');
$this
->assertSession()
->pageTextContains('Style guide');
$this
->assertSession()
->pageTextContains('Showing style guide for Vartheme (Bootstrap 4 - SASS)');
$this
->assertSession()
->pageTextContains('Bootstrap elements');
$this
->assertSession()
->pageTextContains('Varbase elements');
$this
->assertSession()
->pageTextContains('Callout Standard');
$this
->assertSession()
->pageTextContains('Callout Danger');
$this
->assertSession()
->pageTextContains('Callout Warning');
$this
->assertSession()
->pageTextContains('Callout Info');
}
public function testCheckVarbaseStyleGuideOnVmiElementsForVartheme() {
$assert_session = $this
->assertSession();
$this
->drupalGet('admin/structure/types/manage/post/display');
$assert_session
->pageTextContains('Manage display');
$vmi_factory = \Drupal::service('class_resolver')
->getInstanceFromDefinition(ViewModesInventoryFactory::class);
$vmi_list = $vmi_factory
->getViewModesList();
$vmi_layouts_mapping = $vmi_factory
->getLayoutsMapping();
$selected_view_modes = [
'hero_xlarge',
'tout_large',
'tout_medium',
'tout_xlarge',
'vertical_media_teaser_large',
'vertical_media_teaser_medium',
'vertical_media_teaser_small',
'vertical_media_teaser_xlarge',
'vertical_media_teaser_xsmall',
'horizontal_media_teaser_large',
'horizontal_media_teaser_medium',
'horizontal_media_teaser_small',
'horizontal_media_teaser_xlarge',
'horizontal_media_teaser_xsmall',
'text_teaser_large',
'text_teaser_medium',
'text_teaser_small',
];
if (isset($vmi_list['view_modes']) && isset($vmi_layouts_mapping['mapping'])) {
foreach ($selected_view_modes as $selected_view_mode) {
if (isset($vmi_list['view_modes'][$selected_view_mode]) && isset($vmi_layouts_mapping['mapping'][$selected_view_mode]) && isset($vmi_layouts_mapping['mapping'][$selected_view_mode]['layout']) && isset($vmi_layouts_mapping['mapping'][$selected_view_mode]['config_template']) && isset($vmi_layouts_mapping['mapping'][$selected_view_mode]['config_name'])) {
$default_mapped_layout = $vmi_layouts_mapping['mapping'][$selected_view_mode]['layout'];
$config_template_file = $vmi_layouts_mapping['mapping'][$selected_view_mode]['config_template'];
$config_name = $vmi_layouts_mapping['mapping'][$selected_view_mode]['config_name'];
$vmi_factory
->mapViewModeWithLayout($selected_view_mode, $default_mapped_layout, 'node', 'post', $config_template_file, $config_name);
}
}
}
$this
->drupalGet('admin/structure/types/manage/post/display/hero_xlarge');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Hero content'));
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/structure/types/manage/post/display/tout_large');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Tout content'));
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/structure/types/manage/post/display/tout_medium');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Tout content'));
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/structure/types/manage/post/display/tout_xlarge');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Tout content'));
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/structure/types/manage/post/display/vertical_media_teaser_large');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/vertical_media_teaser_medium');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/vertical_media_teaser_small');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/vertical_media_teaser_xlarge');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/vertical_media_teaser_xsmall');
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/horizontal_media_teaser_large');
$assert_session
->pageTextContains($this
->t('Left'));
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Right'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/horizontal_media_teaser_medium');
$assert_session
->pageTextContains($this
->t('Left'));
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Right'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/horizontal_media_teaser_small');
$assert_session
->pageTextContains($this
->t('Left'));
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Right'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/horizontal_media_teaser_xlarge');
$assert_session
->pageTextContains($this
->t('Left'));
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Right'));
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/horizontal_media_teaser_xsmall');
$assert_session
->pageTextContains($this
->t('Left'));
$assert_session
->pageTextContains($this
->t('Main image'));
$assert_session
->pageTextContains($this
->t('Right'));
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/structure/types/manage/post/display/text_teaser_large');
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/text_teaser_medium');
$assert_session
->pageTextContains($this
->t('Title'));
$assert_session
->pageTextContains($this
->t('Body'));
$this
->drupalGet('admin/structure/types/manage/post/display/text_teaser_small');
$assert_session
->pageTextContains($this
->t('Title'));
$this
->drupalGet('admin/appearance/styleguide');
$assert_session
->pageTextContains('Style guide');
$assert_session
->pageTextContains('View Modes - Content type [Post] - hero_xlarge');
$assert_session
->pageTextContains('View Modes - Content type [Post] - tout_large');
$assert_session
->pageTextContains('View Modes - Content type [Post] - tout_medium');
$assert_session
->pageTextContains('View Modes - Content type [Post] - tout_xlarge');
$assert_session
->pageTextContains('View Modes - Content type [Post] - vertical_media_teaser_large');
$assert_session
->pageTextContains('View Modes - Content type [Post] - vertical_media_teaser_medium');
$assert_session
->pageTextContains('View Modes - Content type [Post] - vertical_media_teaser_small');
$assert_session
->pageTextContains('View Modes - Content type [Post] - vertical_media_teaser_xlarge');
$assert_session
->pageTextContains('View Modes - Content type [Post] - vertical_media_teaser_xsmall');
$assert_session
->pageTextContains('View Modes - Content type [Post] - horizontal_media_teaser_large');
$assert_session
->pageTextContains('View Modes - Content type [Post] - horizontal_media_teaser_medium');
$assert_session
->pageTextContains('View Modes - Content type [Post] - horizontal_media_teaser_small');
$assert_session
->pageTextContains('View Modes - Content type [Post] - horizontal_media_teaser_xlarge');
$assert_session
->pageTextContains('View Modes - Content type [Post] - horizontal_media_teaser_xsmall');
$assert_session
->pageTextContains('View Modes - Content type [Post] - text_teaser_large');
$assert_session
->pageTextContains('View Modes - Content type [Post] - text_teaser_medium');
$assert_session
->pageTextContains('View Modes - Content type [Post] - text_teaser_small');
}
}