Skip to content
Snippets Groups Projects
Verified Commit 7dd09dbd authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3444152 by m4olivei, smustgrave: Add test coverage to ensure navigation...

Issue #3444152 by m4olivei, smustgrave: Add test coverage to ensure navigation isn't rendered for users that don't have access

(cherry picked from commit 5a89db6f)
parent 69f22495
No related branches found
No related tags found
6 merge requests!11197Issue #3506427 by eduardo morales alberti: Remove responsive_image.ajax from hook,!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!10786Issue #3490579 by shalini_jha, mstrelan: Add void return to all views...,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!617Issue #3043725: Provide a Entity Handler for user cancelation
Pipeline #384730 passed with warnings
Pipeline: drupal

#384758

    Pipeline: drupal

    #384748

      Pipeline: drupal

      #384735

        <?php
        declare(strict_types=1);
        namespace Drupal\Tests\navigation\FunctionalJavascript;
        use Drupal\Core\Cache\Cache;
        use Drupal\FunctionalJavascriptTests\PerformanceTestBase;
        /**
        * Tests the performance impacts of navigation module.
        *
        * Stark is used as the default theme so that this test is not Olivero specific.
        *
        * @group navigation
        */
        class TopBarPerformanceTest extends PerformanceTestBase {
        /**
        * {@inheritdoc}
        */
        protected static $modules = [
        'navigation',
        ];
        /**
        * {@inheritdoc}
        */
        protected $defaultTheme = 'stark';
        /**
        * {@inheritdoc}
        */
        protected $profile = 'testing';
        /**
        * Tests performance for anonymous users is not affected by the Top Bar.
        */
        public function testTopBarPerformance(): void {
        // Request the front page, then immediately clear all object caches, so that
        // aggregates and image styles are created on disk but otherwise caches are
        // empty.
        $this->drupalGet('');
        // Give time for big pipe placeholders, asset aggregate requests, and post
        // response tasks to finish processing and write to any caches before
        // clearing caches again.
        sleep(2);
        foreach (Cache::getBins() as $bin) {
        $bin->deleteAll();
        }
        // Gather performance data before enabling navigation_top_bar.
        $performance_data_before_top_bar = $this->collectPerformanceData(function () {
        $this->drupalGet('');
        }, 'navigationFrontPageTopBarDisabled');
        // Install navigation_top_bar module.
        \Drupal::service('module_installer')->install(['navigation_top_bar']);
        // Clear caches to prep for another performance data collect.
        foreach (Cache::getBins() as $bin) {
        $bin->deleteAll();
        }
        // Gather performance data after enabling navigation_top_bar.
        $performance_data_after_top_bar = $this->collectPerformanceData(function () {
        $this->drupalGet('');
        }, 'navigationFrontPageTopBarEnabled');
        // Ensure that there is no change to performance metrics from the Top Bar.
        // Anonymous users should never see the Top Bar.
        $this->assertSame($performance_data_before_top_bar->getQueryCount(), $performance_data_after_top_bar->getQueryCount());
        $this->assertSame($performance_data_before_top_bar->getCacheGetCount(), $performance_data_after_top_bar->getCacheGetCount());
        $this->assertSame($performance_data_before_top_bar->getCacheSetCount(), $performance_data_after_top_bar->getCacheSetCount());
        $this->assertSame($performance_data_before_top_bar->getCacheDeleteCount(), $performance_data_after_top_bar->getCacheDeleteCount());
        $this->assertSame($performance_data_before_top_bar->getCacheTagChecksumCount(), $performance_data_after_top_bar->getCacheTagChecksumCount());
        $this->assertSame($performance_data_before_top_bar->getCacheTagIsValidCount(), $performance_data_after_top_bar->getCacheTagIsValidCount());
        $this->assertSame($performance_data_before_top_bar->getCacheTagInvalidationCount(), $performance_data_after_top_bar->getCacheTagInvalidationCount());
        }
        }
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment