Best Atoum code snippet using child.contains
CompileBlockExtendsTests.php
Source:CompileBlockExtendsTests.php  
1<?php2/**3* Smarty PHPunit tests for Block Extends4*5* @package PHPunit6* @author Uwe Tews7*/8/**9* class for block extends compiler tests10*/11class CompileBlockExtendsTests extends PHPUnit_Framework_TestCase12{13    public function setUp()14    {15        $this->smarty = SmartyTests::$smarty;16        SmartyTests::init();17        $this->smarty->setTemplateDir(array('./templates/compileblockextends/','./templates/'));18    }19    static function isRunnable()20    {21        return true;22    }23    /**24    * clear folders25    */26    public function clear()27    {28        $this->smarty->clearAllCache();29        $this->smarty->clearCompiledTemplate();30   }31    /**32    * test block default outout33    */34    public function testBlockDefault_000_1()35    {36        $result = $this->smarty->fetch('eval:{block name=test}-- block default --{/block}');37        $this->assertEquals('-- block default --', $result);38    }39    public function testBlockDefault_000_2()40    {41        $this->smarty->assign ('foo', 'another');42        $result = $this->smarty->fetch('eval:{block name=test}-- {$foo} block default --{/block}');43        $this->assertEquals('-- another block default --', $result);44    }45    /**46    * test just call of  parent template, no blocks predefined47    */48    public function testCompileBlockParent_001()49    {50        $result = $this->smarty->fetch('001_parent.tpl');51        $this->assertContains('Default Title', $result);52    }53    /**54    * test  child/parent template chain55    */56    public function testCompileBlockChild_002()57    {58        $result = $this->smarty->fetch('002_child.tpl');59        $this->assertContains('Page Title', $result);60    }61    /**62    * test  child/parent template chain with prepend63    */64    public function testCompileBlockChildPrepend_003()65    {66        $result = $this->smarty->fetch('003_child_prepend.tpl');67        $this->assertContains("prepend - Default Title", $result);68    }69    /**70    * test  child/parent template chain with apppend71    */72    public function testCompileBlockChildAppend_004()73    {74        $result = $this->smarty->fetch('004_child_append.tpl');75        $this->assertContains("Default Title - append", $result);76    }77    /**78    * test  child/parent template chain with apppend and shorttags79    */80    public function testCompileBlockChildAppendShortag_005()81    {82        $result = $this->smarty->fetch('005_child_append_shorttag.tpl');83        $this->assertContains("Default Title - append", $result);84    }85    /**86    * test  child/parent template chain with {$this->smarty.block.child)87    */88    public function testCompileBlockChildSmartyChild_006()89    {90        $result = $this->smarty->fetch('006_child_smartychild.tpl');91        $this->assertContains('here is >child text< included', $result);92    }93    /**94    * test  child/parent template chain with {$this->smarty.block.parent)95    */96    public function testCompileBlockChildSmartyParent_007()97    {98        $result = $this->smarty->fetch('007_child_smartyparent.tpl');99        $this->assertContains('parent block Default Title is here', $result);100    }101    /**102    * test  child/parent template chain loading plugin103    */104    public function testCompileBlockChildPlugin_008()105    {106        $result = $this->smarty->fetch('008_child_plugin.tpl');107        $this->assertContains('escaped <text>', $result);108    }109    /**110    * test parent template with nested blocks111    */112    public function testCompileBlockParentNested_009()113    {114        $result = $this->smarty->fetch('009_parent_nested.tpl');115        $this->assertContains('Title with -default- here', $result);116    }117    /**118    * test  child/parent template chain with nested block119    */120    public function testCompileBlockChildNested_010()121    {122        $result = $this->smarty->fetch('010_child_nested.tpl');123        $this->assertContains('Title with -content from child- here', $result);124    }125    /**126    * test  child/parent template chain with nested block and include127    */128    public function testCompileBlockChildNestedInclude_011()129    {130        $result = $this->smarty->fetch('011_grandchild_nested_include.tpl');131        $this->assertContains('hello world', $result);132    }133    /**134    * test  grandchild/child/parent template chain135    */136    public function testCompileBlockGrandChild_012()137    {138        $result = $this->smarty->fetch('012_grandchild.tpl');139        $this->assertContains('Grandchild Page Title', $result);140    }141    /**142    * test  grandchild/child/parent template chain prepend143    */144    public function testCompileBlockGrandChildPrepend_013()145    {146        $result = $this->smarty->fetch('013_grandchild_prepend.tpl');147        $this->assertContains('grandchild prepend - Page Title', $result);148    }149    /**150    * test  grandchild/child/parent template chain with {$this->smarty.block.child}151    */152    public function testCompileBlockGrandChildSmartyChild_014()153    {154        $result = $this->smarty->fetch('014_grandchild_smartychild.tpl');155        $this->assertContains('child title with - grandchild content - here', $result);156    }157    /**158    * test  grandchild/child/parent template chain append159    */160    public function testCompileBlockGrandChildAppend_015()161    {162        $result = $this->smarty->fetch('015_grandchild_append.tpl');163        $this->assertContains('Page Title - grandchild append', $result);164    }165    /**166    * test  grandchild/child/parent template chain with nested block167    */168    public function testCompileBlockGrandChildNested_016()169    {170        $result = $this->smarty->fetch('016_grandchild_nested.tpl');171        $this->assertContains('child title with -grandchild content- here', $result);172    }173    /**174    * test  grandchild/child/parent template chain with nested {$this->smarty.block.child}175    */176    public function testCompileBlockGrandChildNested_017()177    {178        $result = $this->smarty->fetch('017_grandchild_nested.tpl');179        $this->assertContains('child pre -grandchild content- child post', $result);180    }181    /**182    * test  nested child block with hide183    */184    public function testCompileBlockChildNestedHide_018()185    {186        $result = $this->smarty->fetch('018_child_nested_hide.tpl');187        $this->assertContains('nested block', $result);188        $this->assertNotContains('should be hidden', $result);189    }190    /**191    * test  nested child block with hide and auto_literal = false192    */193    public function testCompileBlockChildNestedHideAutoLiteralFalse_019()194    {195        $this->smarty->auto_literal = false;196        $result = $this->smarty->fetch('019_child_nested_hide_autoliteral.tpl');197        $this->assertContains('nested block', $result);198        $this->assertNotContains('should be hidden', $result);199    }200    /**201    * test  child/parent template chain starting in subtempates202    */203    public function testCompileBlockStartSubTemplates_020()204    {205        $result = $this->smarty->fetch('020_include_root.tpl');206        $this->assertContains('page 1', $result);207        $this->assertContains('page 2', $result);208        $this->assertContains('page 3', $result);209        $this->assertContains('block 1', $result);210        $this->assertContains('block 2', $result);211        $this->assertContains('block 3', $result);212   }213    /**214    * test  grandchild/child/parent dependency test1215    */216    public function testCompileBlockGrandChildMustCompile_021_1()217    {218        $this->smarty->caching = true;219        $this->smarty->cache_lifetime = 1000;220        $tpl = $this->smarty->createTemplate('021_grandchild.tpl');221        $this->assertFalse($tpl->isCached());222        $result = $this->smarty->fetch($tpl);223        $this->assertContains('Grandchild Page Title', $result);224        $this->smarty->template_objects = null;225        $tpl2 = $this->smarty->createTemplate('021_grandchild.tpl');226        $this->assertTrue($tpl2->isCached());227        $result = $this->smarty->fetch($tpl2);228        $this->assertContains('Grandchild Page Title', $result);229    }230    /**231    * test  grandchild/child/parent dependency test2232    */233    public function testCompileBlockGrandChildMustCompile_021_2()234    {235        touch($this->smarty->getTemplateDir(0) . '021_grandchild.tpl');236        $this->smarty->caching = true;237        $this->smarty->cache_lifetime = 1000;238        $tpl = $this->smarty->createTemplate('021_grandchild.tpl');239        $this->assertFalse($tpl->isCached());240        $result = $this->smarty->fetch($tpl);241        $this->assertContains('Grandchild Page Title', $result);242        $this->smarty->template_objects = null;243        $tpl2 = $this->smarty->createTemplate('021_grandchild.tpl');244        $this->assertTrue($tpl2->isCached());245        $result = $this->smarty->fetch($tpl2);246        $this->assertContains('Grandchild Page Title', $result);247    }248    /**249    * test  grandchild/child/parent dependency test3250    */251    public function testCompileBlockGrandChildMustCompile_021_3()252    {253        touch($this->smarty->getTemplateDir(0) . '021_child.tpl');254        $this->smarty->caching = true;255        $this->smarty->cache_lifetime = 1000;256        $tpl = $this->smarty->createTemplate('021_grandchild.tpl');257        $this->assertFalse($tpl->isCached());258        $result = $this->smarty->fetch($tpl);259        $this->assertContains('Grandchild Page Title', $result);260        $this->smarty->template_objects = null;261        $tpl2 = $this->smarty->createTemplate('021_grandchild.tpl');262        $this->assertTrue($tpl2->isCached());263        $result = $this->smarty->fetch($tpl2);264        $this->assertContains('Grandchild Page Title', $result);265    }266    /**267    * test  grandchild/child/parent dependency test4268    */269    public function testCompileBlockGrandChildMustCompile_021_4()270    {271        touch($this->smarty->getTemplateDir(0) . '021_parent.tpl');272        $this->smarty->caching = true;273        $this->smarty->cache_lifetime = 1000;274        $tpl = $this->smarty->createTemplate('021_grandchild.tpl');275        $this->assertFalse($tpl->isCached());276        $result = $this->smarty->fetch($tpl);277        $this->assertContains('Grandchild Page Title', $result);278        $this->smarty->template_objects = null;279        $tpl2 = $this->smarty->createTemplate('021_grandchild.tpl');280        $this->assertTrue($tpl2->isCached());281        $result = $this->smarty->fetch($tpl2);282        $this->assertContains('Grandchild Page Title', $result);283    }284    /**285     * test dirt in child templates286     */287    public function testDirt_022()288    {289        $result = $this->smarty->fetch('022_child.tpl');290        $this->assertEquals('Page Title', $result);291    }292    /**293     * test {strip} outside {block]294     */295    public function testChildStrip_023()296    {297        $result = $this->smarty->fetch('023_child.tpl');298        $this->assertContains('<div id="header"><div>Demo</div></div>', $result);299    }300    /**301     * test {$this->smarty.block.child} for not existing child {block]302     */303    public function testNotExistingChildBlock_024()304    {305        $result = $this->smarty->fetch('024_parent.tpl');306        $this->assertContains('no >< child', $result);307    }308    /**309     * test {$this->smarty.block.child} outside {block]310     */311    public function testSmartyBlockChildOutsideBlock_025()312    {313        try {314            $result = $this->smarty->fetch('025_parent.tpl');315        } catch (Exception $e) {316            $this->assertContains('used outside', $e->getMessage());317            return;318        }319        $this->fail('Exception for {$this->smarty.block.child} used outside {block} has not been raised.');320    }321    /**322     * test {$this->smarty.block.parent} outside {block]323     */324    public function testSmartyBlockParentOutsideBlock_026()325    {326        try {327            $result = $this->smarty->fetch('026_parent.tpl');328        } catch (Exception $e) {329            $this->assertContains('used outside', $e->getMessage());330            return;331        }332        $this->fail('Exception for {$this->smarty.block.parent} used outside {block} has not been raised.');333    }334    /**335     * test {$this->smarty.block.parent} in parent template336     */337    public function testSmartyBlockParentInParent_027()338    {339        try {340            $result = $this->smarty->fetch('027_parent.tpl');341        } catch (Exception $e) {342            $this->assertContains('in parent template', $e->getMessage());343            return;344        }345        $this->fail('Exception for illegal {$this->smarty.block.parent} in parent template has not been raised.');346    }347    /**348     * test variable file name in {extends}349     */350    public function testVariableExtends_028()351    {352        $this->smarty->assign('foo','028_parent.tpl');353        try {354            $result = $this->smarty->fetch('028_child.tpl');355        } catch (Exception $e) {356            $this->assertContains('variable template file name not allowed', $e->getMessage());357            return;358        }359        $this->fail('Exception for illegal variable template file name not been raised.');360    }361    /**362     * test variable file name in {include}363     */364    public function testVariableExtends_029()365    {366        $this->smarty->assign('foo','helloworld.tpl');367        try {368            $result = $this->smarty->fetch('029_parent.tpl');369        } catch (Exception $e) {370            $this->assertContains('variable template file names not allow within {block} tags', $e->getMessage());371            return;372        }373        $this->fail('Exception for illegal variable template file name not been raised.');374    }375    /**376     * test nocache on different levels377     */378    public function testNocacheBlock_030_1()379    {380        $this->smarty->caching = 1;381        $this->smarty->assign('b1','b1_1');382        $this->smarty->assign('b3','b3_1');383        $this->smarty->assign('b4','b4_1');384        $this->smarty->assign('b5','b5_1');385        $this->smarty->assign('b6','b6_1');386        $result = $this->smarty->fetch('030_grandchild.tpl');387        $this->assertContains('parent b1 b1_1*parent b2*grandchild b3 b3_1*include b3 b6_1*grandchild b6 b6_1*', $result);388        $this->assertContains('child b4 b4_1*grandchild b4 b4_1**', $result);389        $this->assertContains('child b5 b5_1*grandchild b5 b5_1**', $result);390        $this->assertContains('child b61 b6_1*include 61 b6_1*grandchild b6 b6_1*', $result);391        $this->assertContains('child b62 b6_1*include 62 b6_1*grandchild b6 b6_1*', $result);392        $this->assertContains('child b63 b6_1*grandchild b6 b6_1*', $result);393        $this->assertContains('child b64 b6_1*include b64 b6_1*grandchild b6 b6_1*', $result);394        $this->assertContains('parent include b6_1*grandchild b6 b6_1*', $result);395        $this->assertContains('parent include2 grandchild b6 b6_1*', $result);396    }397    /**398     * test nocache on different levels399     */400    public function testNocacheBlock_030_2()401    {402        $this->smarty->caching = 1;403        $this->smarty->assign('b1','b1_2');404        $this->smarty->assign('b3','b3_2');405        $this->smarty->assign('b4','b4_2');406        $this->smarty->assign('b5','b5_2');407        $this->smarty->assign('b6','b6_2');408        $result = $this->smarty->fetch('030_grandchild.tpl');409        $this->assertContains('parent b1 b1_2*parent b2*grandchild b3 b3_2*include b3 b6_2*grandchild b6 b6_2*', $result);410        $this->assertContains('child b4 b4_1*grandchild b4 b4_2**', $result);411        $this->assertContains('child b5 b5_2*grandchild b5 b5_2**', $result);412        $this->assertContains('child b61 b6_1*include 61 b6_1*grandchild b6 b6_1*', $result);413        $this->assertContains('child b62 b6_2*include 62 b6_2*grandchild b6 b6_2*', $result);414        $this->assertContains('child b63 b6_1*grandchild b6 b6_2*', $result);415        $this->assertContains('child b64 b6_1*include b64 b6_2*grandchild b6 b6_2*', $result);416        $this->assertContains('parent include b6_2*grandchild b6 b6_2*', $result);417        $this->assertContains('parent include2 grandchild b6 b6_2*', $result);418    }419}...MenuBlockTest.php
Source:MenuBlockTest.php  
1<?php2namespace Drupal\Tests\menu_block\Functional;3use Drupal\Tests\BrowserTestBase;4/**5 * Tests for the menu_block module.6 *7 * @group menu_block8 */9class MenuBlockTest extends BrowserTestBase {10  /**11   * {@inheritdoc}12   */13  public static $modules = [14    'block',15    'menu_block',16    'menu_block_test',17  ];18  /**19   * {@inheritdoc}20   */21  protected $defaultTheme = 'stark';22  /**23   * An administrative user to configure the test environment.24   *25   * @var \Drupal\user\Entity\User|false26   */27  protected $adminUser;28  /**29   * The menu link plugin manager.30   *31   * @var \Drupal\Core\Menu\MenuLinkManagerInterface32   */33  protected $menuLinkManager;34  /**35   * The block storage.36   *37   * @var \Drupal\Core\Entity\EntityStorageInterface38   */39  protected $blockStorage;40  /**41   * The block view builder.42   *43   * @var \Drupal\Core\Entity\EntityViewBuilderInterface44   */45  protected $blockViewBuilder;46  /**47   * The menu link content storage.48   *49   * @var \Drupal\Core\Entity\EntityStorageInterface50   */51  protected $menuLinkContentStorage;52  /**53   * The module handler service.54   *55   * @var \Drupal\Core\Extension\ModuleHandlerInterface56   */57  protected $moduleHandler;58  /**59   * An array containing the menu link plugin ids.60   *61   * @var array62   */63  protected $links;64  /**65   * {@inheritdoc}66   */67  public function setUp() {68    parent::setUp();69    $this->menuLinkManager = \Drupal::service('plugin.manager.menu.link');70    $this->blockStorage = \Drupal::service('entity_type.manager')71      ->getStorage('block');72    $this->blockViewBuilder = \Drupal::service('entity_type.manager')73      ->getViewBuilder('block');74    $this->menuLinkContentStorage = \Drupal::service('entity_type.manager')75      ->getStorage('menu_link_content');76    $this->moduleHandler = \Drupal::moduleHandler();77    $this->links = $this->createLinkHierarchy();78    // Create and log in an administrative user.79    $this->adminUser = $this->drupalCreateUser([80      'administer blocks',81      'access administration pages',82    ]);83    $this->drupalLogin($this->adminUser);84  }85  /**86   * Creates a simple hierarchy of links.87   */88  protected function createLinkHierarchy() {89    // First remove all the menu links in the menu.90    $this->menuLinkManager->deleteLinksInMenu('main');91    // Then create a simple link hierarchy:92    // - parent menu item93    //   - child-1 menu item94    //     - child-1-1 menu item95    //     - child-1-2 menu item96    //   - child-2 menu item.97    $base_options = [98      'provider' => 'menu_block',99      'menu_name' => 'main',100    ];101    $parent = $base_options + [102      'title' => 'parent menu item',103      'link' => ['uri' => 'internal:/menu-block-test/hierarchy/parent'],104    ];105    /** @var \Drupal\menu_link_content\MenuLinkContentInterface $link */106    $link = $this->menuLinkContentStorage->create($parent);107    $link->save();108    $links['parent'] = $link->getPluginId();109    $child_1 = $base_options + [110      'title' => 'child-1 menu item',111      'link' => ['uri' => 'internal:/menu-block-test/hierarchy/parent/child-1'],112      'parent' => $links['parent'],113    ];114    $link = $this->menuLinkContentStorage->create($child_1);115    $link->save();116    $links['child-1'] = $link->getPluginId();117    $child_1_1 = $base_options + [118      'title' => 'child-1-1 menu item',119      'link' => ['uri' => 'internal:/menu-block-test/hierarchy/parent/child-1/child-1-1'],120      'parent' => $links['child-1'],121    ];122    $link = $this->menuLinkContentStorage->create($child_1_1);123    $link->save();124    $links['child-1-1'] = $link->getPluginId();125    $child_1_2 = $base_options + [126      'title' => 'child-1-2 menu item',127      'link' => ['uri' => 'internal:/menu-block-test/hierarchy/parent/child-1/child-1-2'],128      'parent' => $links['child-1'],129    ];130    $link = $this->menuLinkContentStorage->create($child_1_2);131    $link->save();132    $links['child-1-2'] = $link->getPluginId();133    $child_2 = $base_options + [134      'title' => 'child-2 menu item',135      'link' => ['uri' => 'internal:/menu-block-test/hierarchy/parent/child-2'],136      'parent' => $links['parent'],137    ];138    $link = $this->menuLinkContentStorage->create($child_2);139    $link->save();140    $links['child-2'] = $link->getPluginId();141    return $links;142  }143  /**144   * Checks if all menu block configuration options are available.145   */146  public function testMenuBlockFormDisplay() {147    $this->drupalGet('admin/structure/block/add/menu_block:main');148    $this->assertSession()->pageTextContains('Initial visibility level');149    $this->assertSession()->pageTextContains('Number of levels to display');150    $this->assertSession()->pageTextContains('Expand all menu links');151    $this->assertSession()->pageTextContains('Fixed parent item');152    $this->assertSession()153      ->pageTextContains('Make the initial visibility level follow the active menu item.');154    $this->assertSession()->pageTextContains('Theme hook suggestion');155  }156  /**157   * Checks if all menu block settings are saved correctly.158   */159  public function testMenuBlockUi() {160    $block_id = 'main';161    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [162      'id' => $block_id,163      'settings[label]' => 'Main navigation',164      'settings[label_display]' => FALSE,165      'settings[level]' => 2,166      'settings[depth]' => 6,167      'settings[expand]' => TRUE,168      'settings[parent]' => 'main:',169      'settings[follow]' => TRUE,170      'settings[follow_parent]' => 'active',171      'settings[suggestion]' => 'main',172      'region' => 'primary_menu',173    ], 'Save block');174    $block = $this->blockStorage->load($block_id);175    $block_settings = $block->get('settings');176    $this->assertSame(2, $block_settings['level']);177    $this->assertSame(6, $block_settings['depth']);178    $this->assertTrue($block_settings['expand']);179    $this->assertSame('main:', $block_settings['parent']);180    $this->assertTrue($block_settings['follow']);181    $this->assertSame('active', $block_settings['follow_parent']);182    $this->assertSame('main', $block_settings['suggestion']);183  }184  /**185   * Tests the menu_block level option.186   */187  public function testMenuBlockLevel() {188    // Add new menu block.189    $block_id = 'main';190    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [191      'id' => $block_id,192      'settings[label]' => 'Main navigation',193      'settings[label_display]' => FALSE,194      'settings[level]' => 1,195      'region' => 'primary_menu',196    ], 'Save block');197    // Check if the parent menu item is visible, but the child menu items not.198    $this->drupalGet('<front>');199    $this->assertSession()->pageTextContains('parent menu item');200    $this->assertSession()->pageTextNotContains('child-1 menu item');201    $this->assertSession()->pageTextNotContains('child-1-1 menu item');202    $this->assertSession()->pageTextNotContains('child-2 menu item');203    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [204      'settings[level]' => 2,205    ], 'Save block');206    // Check if the menu items of level 2 are visible, but not the parent menu207    // item.208    $this->drupalGet('menu-block-test/hierarchy/parent');209    $this->assertSession()->pageTextContains('child-1 menu item');210    $this->assertSession()->pageTextContains('child-2 menu item');211    $this->assertSession()->pageTextNotContains('parent menu item');212    $this->assertSession()->pageTextNotContains('child-1-1 menu item');213  }214  /**215   * Tests the menu_block depth option.216   */217  public function testMenuBlockDepth() {218    // Add new menu block.219    $block_id = 'main';220    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [221      'id' => $block_id,222      'settings[label]' => 'Main navigation',223      'settings[label_display]' => FALSE,224      'settings[level]' => 1,225      'settings[depth]' => 1,226      'settings[expand]' => TRUE,227      'region' => 'primary_menu',228    ], 'Save block');229    // Check if the parent menu item is visible, but the child menu items not.230    $this->drupalGet('<front>');231    $this->assertSession()->pageTextContains('parent menu item');232    $this->assertSession()->pageTextNotContains('child-1 menu item');233    $this->assertSession()->pageTextNotContains('child-1-1 menu item');234    $this->assertSession()->pageTextNotContains('child-2 menu item');235    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [236      'settings[depth]' => 2,237    ], 'Save block');238    // Check if the menu items of level 2 are visible, but not the parent menu239    // item.240    $this->drupalGet('menu-block-test/hierarchy/parent');241    $this->assertSession()->pageTextContains('parent menu item');242    $this->assertSession()->pageTextContains('child-1 menu item');243    $this->assertSession()->pageTextContains('child-2 menu item');244    $this->assertSession()->pageTextNotContains('child-1-1 menu item');245    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [246      'settings[depth]' => 0,247    ], 'Save block');248    // Check if the menu items of level 2 are visible, but not the parent menu249    // item.250    $this->drupalGet('<front>');251    $this->assertSession()->pageTextContains('parent menu item');252    $this->assertSession()->pageTextContains('child-1 menu item');253    $this->assertSession()->pageTextContains('child-2 menu item');254    $this->assertSession()->pageTextContains('child-1-1 menu item');255  }256  /**257   * Tests the menu_block expand option.258   */259  public function testMenuBlockExpand() {260    $block_id = 'main';261    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [262      'id' => $block_id,263      'settings[label]' => 'Main navigation',264      'settings[label_display]' => FALSE,265      'settings[level]' => 1,266      'settings[expand]' => TRUE,267      'region' => 'primary_menu',268    ], 'Save block');269    // Check if the parent menu item is visible, but the child menu items not.270    $this->drupalGet('<front>');271    $this->assertSession()->pageTextContains('parent menu item');272    $this->assertSession()->pageTextContains('child-1 menu item');273    $this->assertSession()->pageTextContains('child-1-1 menu item');274    $this->assertSession()->pageTextContains('child-2 menu item');275    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [276      'settings[expand]' => FALSE,277    ], 'Save block');278    $this->drupalGet('<front>');279    $this->assertSession()->pageTextContains('parent menu item');280    $this->assertSession()->pageTextNotContains('child-1 menu item');281    $this->assertSession()->pageTextNotContains('child-1-1 menu item');282    $this->assertSession()->pageTextNotContains('child-2 menu item');283  }284  /**285   * Tests the menu_block parent option.286   */287  public function testMenuBlockParent() {288    $block_id = 'main';289    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [290      'id' => $block_id,291      'settings[label]' => 'Main navigation',292      'settings[label_display]' => FALSE,293      'settings[parent]' => 'main:' . $this->links['parent'],294      'region' => 'primary_menu',295    ], 'Save block');296    $this->drupalGet('<front>');297    $this->assertSession()->pageTextNotContains('parent menu item');298    $this->assertSession()->pageTextContains('child-1 menu item');299    $this->assertSession()->pageTextNotContains('child-1-1 menu item');300    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [301      'settings[parent]' => 'main:' . $this->links['child-1'],302    ], 'Save block');303    $this->assertSession()->pageTextNotContains('parent menu item');304    $this->assertSession()->pageTextNotContains('child-1 menu item');305    $this->assertSession()->pageTextContains('child-1-1 menu item');306    $this->assertSession()->pageTextContains('child-1-2 menu item');307  }308  /**309   * Tests the menu_block follow and follow_parent option.310   */311  public function testMenuBlockFollow() {312    $block_id = 'main';313    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [314      'id' => $block_id,315      'settings[label]' => 'Main navigation',316      'settings[label_display]' => FALSE,317      'settings[follow]' => TRUE,318      'settings[follow_parent]' => 'child',319      'region' => 'primary_menu',320    ], 'Save block');321    $this->drupalGet('<front>');322    $this->assertSession()->pageTextContains('parent menu item');323    $this->assertSession()->pageTextNotContains('child-1 menu item');324    $this->assertSession()->pageTextNotContains('child-1-1 menu item');325    $this->drupalGet('menu-block-test/hierarchy/parent');326    $this->assertSession()->pageTextNotContains('parent menu item');327    $this->assertSession()->pageTextContains('child-1 menu item');328    $this->assertSession()->pageTextContains('child-2 menu item');329    $this->drupalGet('menu-block-test/hierarchy/parent/child-1');330    $this->assertSession()->pageTextNotContains('parent menu item');331    $this->assertSession()->pageTextNotContains('child-1 menu item');332    $this->assertSession()->pageTextContains('child-1-1 menu item');333    $this->assertSession()->pageTextContains('child-1-2 menu item');334    $this->assertSession()->pageTextNotContains('child-2 menu item');335    $this->drupalPostForm('admin/structure/block/manage/' . $block_id, [336      'settings[follow_parent]' => 'active',337    ], 'Save block');338    $this->drupalGet('<front>');339    $this->assertSession()->pageTextContains('parent menu item');340    $this->assertSession()->pageTextNotContains('child-1 menu item');341    $this->assertSession()->pageTextNotContains('child-1-1 menu item');342    $this->drupalGet('menu-block-test/hierarchy/parent');343    $this->assertSession()->pageTextContains('parent menu item');344    $this->assertSession()->pageTextContains('child-1 menu item');345    $this->assertSession()->pageTextNotContains('child-1-1 menu item');346  }347  /**348   * Tests the menu_block suggestion option.349   */350  public function testMenuBlockSuggestion() {351    $block_id = 'main';352    $this->drupalPostForm('admin/structure/block/add/menu_block:main', [353      'id' => $block_id,354      'settings[label]' => 'Main navigation',355      'settings[label_display]' => FALSE,356      'settings[suggestion]' => 'mainnav',357      'region' => 'primary_menu',358    ], 'Save block');359    /** @var \Drupal\block\BlockInterface $block */360    $block = $this->blockStorage->load($block_id);361    $plugin = $block->getPlugin();362    // Check theme suggestions for block template.363    $variables = [];364    $variables['elements']['#configuration'] = $plugin->getConfiguration();365    $variables['elements']['#plugin_id'] = $plugin->getPluginId();366    $variables['elements']['#id'] = $block->id();367    $variables['elements']['#base_plugin_id'] = $plugin->getBaseId();368    $variables['elements']['#derivative_plugin_id'] = $plugin->getDerivativeId();369    $variables['elements']['content'] = [];370    $suggestions = $this->moduleHandler->invokeAll('theme_suggestions_block', [$variables]);371    $base_theme_hook = 'menu_block';372    $hooks = [373      'theme_suggestions',374      'theme_suggestions_' . $base_theme_hook,375    ];376    $this->moduleHandler->alter($hooks, $suggestions, $variables, $base_theme_hook);377    $this->assertSame($suggestions, [378      'block__menu_block',379      'block__menu_block',380      'block__menu_block__main',381      'block__main',382      'block__menu_block__mainnav',383    ], 'Found expected block suggestions.');384    // Check theme suggestions for menu template.385    $variables = [386      'menu_name' => 'main',387      'menu_block_configuration' => $plugin->getConfiguration(),388    ];389    $suggestions = $this->moduleHandler->invokeAll('theme_suggestions_menu', [$variables]);390    $base_theme_hook = 'menu';391    $hooks = [392      'theme_suggestions',393      'theme_suggestions_' . $base_theme_hook,394    ];395    $this->moduleHandler->alter($hooks, $suggestions, $variables, $base_theme_hook);396    $this->assertSame($suggestions, [397      'menu__main',398      'menu__mainnav',399    ], 'Found expected menu suggestions.');400  }401}...contains
Using AI Code Generation
1$child = new Child();2$child->contains('hello');3$parent = new Parent();4$parent->contains('hello');5$parent = new Parent();6$parent->contains('hello');7$child = new Child();8$child->contains('hello');9$parent = new Parent();10$parent->contains('hello');11$child = new Child();12$child->contains('hello');13$parent = new Parent();14$parent->contains('hello');15$child = new Child();16$child->contains('hello');17$child = new Child();18$child->contains('hello');19$parent = new Parent();20$parent->contains('hello');21$child = new Child();22$child->contains('hello');23$parent = new Parent();24$parent->contains('hello');25$child = new Child();26$child->contains('hello');27$parent = new Parent();28$parent->contains('hello');29$child = new Child();30$child->contains('hello');31$child = new Child();32$child->contains('hello');33$parent = new Parent();34$parent->contains('hello');contains
Using AI Code Generation
1$child = new child();2echo $child->contains('a');3$parent = new parent();4echo $parent->contains('a');5$child = new child();6echo $child->contains('a');7$parent = new parent();8echo $parent->contains('a');9$child = new child();10echo $child->contains('a');11$parent = new parent();12echo $parent->contains('a');13$child = new child();14echo $child->contains('a');15$parent = new parent();16echo $parent->contains('a');17$child = new child();18echo $child->contains('a');19$parent = new parent();20echo $parent->contains('a');21$child = new child();22echo $child->contains('a');23$parent = new parent();24echo $parent->contains('a');25$child = new child();26echo $child->contains('a');27$parent = new parent();28echo $parent->contains('a');29$child = new child();30echo $child->contains('a');31$parent = new parent();32echo $parent->contains('a');contains
Using AI Code Generation
1$child = new Child();2$child->contains("Hello World");3$parent = new Parent();4$parent->contains("Hello World");5Recommended Posts: PHP | __call() Magic Method6PHP | __callStatic() Magic Method7PHP | __set_state() Magic Method8PHP | __wakeup() Magic Method9PHP | __sleep() Magic Method10PHP | __invoke() Magic Method11PHP | __set() Magic Method12PHP | __get() Magic Method13PHP | __isset() Magic Method14PHP | __unset() Magic Method15PHP | __clone() Magic Method16PHP | __debugInfo() Magic Method17PHP | __destruct() Magic Method18PHP | __construct() Magic Method19PHP | __tostring() Magic Method20PHP | __autoload() Magic Method21PHP | __halt_compiler() Magic Method22PHP | __halt_compiler() Magic Method23PHP | __autoload() Magic Method24PHP | __debugInfo() Magic Method25PHP | __clone() Magic Method26PHP | __unset() Magic Method27PHP | __isset() Magic Method28PHP | __get() Magic Method29PHP | __set() Magic Method30PHP | __invoke() Magic Method31PHP | __sleep() Magic Method32PHP | __wakeup() Magic Method33PHP | __set_state() Magiccontains
Using AI Code Generation
1$child = new Child();2$child->contains("Hello World");3$child = new Child();4$child->contains("Hello World");5$child = new Child();6$child->contains("Hello World");7$child = new Child();8$child->contains("Hello World");9$child = new Child();10$child->contains("Hello World");11$child = new Child();12$child->contains("Hello World");13$child = new Child();14$child->contains("Hello World");15$child = new Child();16$child->contains("Hello World");17$child = new Child();18$child->contains("Hello World");19$child = new Child();20$child->contains("Hello World");21$child = new Child();22$child->contains("Hello World");23$child = new Child();24$child->contains("Hello World");25$child = new Child();26$child->contains("Hello World");27$child = new Child();28$child->contains("Hello World");29$child = new Child();30$child->contains("Hello World");31$child = new Child();32$child->contains("Hello World");Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Execute automation tests with contains on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.
Test now for FreeGet 100 minutes of automation test minutes FREE!!
