Skip to content
Snippets Groups Projects
Verified Commit 506ccd4e authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3445285 by catch, longwave, larowlan, quietone: Add extra page request...

Issue #3445285 by catch, longwave, larowlan, quietone: Add extra page request to the across pages asset performance test

(cherry picked from commit 8654d2b8)
parent 18daefd7
No related branches found
No related tags found
34 merge requests!10663Issue #3495778: Update phpdoc in FileSaveHtaccessLoggingTest,!10451Issue #3472458 by watergate, smustgrave: CKEditor 5 show blocks label is not translated,!103032838547 Fix punctuation rules for inline label suffix colon with CSS only,!10150Issue #3467294 by quietone, nod_, smustgrave, catch, longwave: Change string...,!10130Resolve #3480321 "Second level menu",!9936Issue #3483087: Check the module:// prefix in the translation server path and replace it with the actual module path,!9933Issue #3394728 by ankondrat4: Undefined array key "#prefix" and deprecated function: explode() in Drupal\file\Element\ManagedFile::uploadAjaxCallback(),!9914Issue #3451136 by quietone, gapple, ghost of drupal past: Improve...,!9882Draft: Issue #3481777 In bulk_form ensure the triggering element is the bulk_form button,!9839Issue #3445469 by pooja_sharma, smustgrave: Add additional test coverage for...,!9815Issue #3480025: There is no way to remove entity cache items,!9757Issue #3478869 Add "All" or overview links to parent links,!9752Issue #3439910 by pooja_sharma, vensires: Fix Toolbar tests that rely on UID1's super user behavior,!9749Issue #3439910 by pooja_sharma, vensires: Fix Toolbar tests that rely on UID1's super user behavior,!9678Issue #3465132 by catch, Spokje, nod_: Show test run time by class in run-tests.sh output,!9578Issue #3304746 by scott_euser, casey, smustgrave: BigPipe cannot handle (GET)...,!9449Issue #3344041: Allow textarea widgets to be used for text (formatted) fields,!8945🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥...,!8893Resolve #3444391 "Navigation center sm logo",!8772Issue #3445909 by seanB, smustgrave, alexpott, catch: Add static caching to...,!8723Make dblog entities,!8708Filter out disabled display extenders on save,!8691#3459116 - Update Manager Settings: Validate same email address added multiple times,!8665Issue #3449743 by catch: Try to optimize test ordering when run-tests.sh is...,!8598Draft: Issue #3458215: Migrate Toolbar button to SDC,!8572Reorder checkboxes on "Development settings" page,!8538Issue #3457009: Fixing xxception message thrown.,!8516Update file EntityReferenceItem.php,!8505Issue #3456528: _node_mass_update_batch_process fails during user cancel when revision is deleted,!8494Issue #3452511: Convert ProviderRepositoryTest to a kernel test,!8482Resolve #3456202 "Phpunit tests support",!8463Prevent re-install if site already exists,!8392Issue #3454196: Filter placeholders without arguments are not replaced when HTML corrector filter applied afterwards,!8384Issue #3446403 by edutrul, jnicola, mradcliffe: [name]: This field is missing for example recipe
Pipeline #197145 passed with warnings
Pipeline: drupal

#197152

    ......@@ -5,7 +5,6 @@
    namespace Drupal\Tests\demo_umami\FunctionalJavascript;
    use Drupal\FunctionalJavascriptTests\PerformanceTestBase;
    use Drupal\Tests\PerformanceData;
    /**
    * Tests demo_umami profile performance.
    ......@@ -23,9 +22,11 @@ class AssetAggregationAcrossPagesTest extends PerformanceTestBase {
    * Checks the asset requests made when the front and recipe pages are visited.
    */
    public function testFrontAndRecipesPages() {
    $performance_data = $this->doRequests();
    $this->assertSame(4, $performance_data->getStylesheetCount());
    $this->assertLessThan(80000, $performance_data->getStylesheetBytes());
    $performance_data = $this->collectPerformanceData(function () {
    $this->doRequests();
    }, 'umamiFrontAndRecipePages');
    $this->assertSame(6, $performance_data->getStylesheetCount());
    $this->assertLessThan(125000, $performance_data->getStylesheetBytes());
    $this->assertSame(1, $performance_data->getScriptCount());
    $this->assertLessThan(7500, $performance_data->getScriptBytes());
    }
    ......@@ -36,26 +37,29 @@ public function testFrontAndRecipesPages() {
    public function testFrontAndRecipesPagesAuthenticated() {
    $user = $this->createUser();
    $this->drupalLogin($user);
    $this->rebuildAll();
    $performance_data = $this->doRequests();
    $this->assertSame(4, $performance_data->getStylesheetCount());
    $this->assertLessThan(87000, $performance_data->getStylesheetBytes());
    $this->assertSame(1, $performance_data->getScriptCount());
    $this->assertLessThan(125500, $performance_data->getScriptBytes());
    sleep(2);
    $performance_data = $this->collectPerformanceData(function () {
    $this->doRequests();
    }, 'umamiFrontAndRecipePagesAuthenticated');
    $this->assertSame(6, $performance_data->getStylesheetCount());
    $this->assertLessThan(132500, $performance_data->getStylesheetBytes());
    $this->assertSame(2, $performance_data->getScriptCount());
    $this->assertLessThan(250000, $performance_data->getScriptBytes());
    }
    /**
    * Helper to do requests so the above test methods stay in sync.
    * Performs a common set of requests so the above test methods stay in sync.
    */
    protected function doRequests(): PerformanceData {
    $performance_data = $this->collectPerformanceData(function () {
    $this->drupalGet('<front>');
    // Give additional time for the request and all assets to be returned
    // before making the next request.
    sleep(2);
    $this->drupalGet('articles');
    }, 'umamiFrontAndRecipePages');
    return $performance_data;
    protected function doRequests(): void {
    $this->drupalGet('<front>');
    // Give additional time for the request and all assets to be returned
    // before making the next request.
    sleep(2);
    $this->drupalGet('articles');
    sleep(2);
    $this->drupalGet('recipes');
    sleep(2);
    $this->drupalGet('recipes/deep-mediterranean-quiche');
    }
    }
    ......@@ -614,8 +614,12 @@ protected function assertCountBetween(int $min, int $max, int $actual) {
    * Whether the event was triggered by the database cache implementation.
    */
    protected static function isDatabaseCache(DatabaseEvent $event): bool {
    $class = str_replace('\\\\', '\\', $event->caller['class']);
    return is_a($class, '\Drupal\Core\Cache\DatabaseBackend', TRUE) || is_a($class, '\Drupal\Core\Cache\DatabaseCacheTagsChecksum', TRUE);
    // If there is no class, then this is called from a procedural function.
    if (isset($event->caller['class'])) {
    $class = str_replace('\\\\', '\\', $event->caller['class']);
    return is_a($class, '\Drupal\Core\Cache\DatabaseBackend', TRUE) || is_a($class, '\Drupal\Core\Cache\DatabaseCacheTagsChecksum', TRUE);
    }
    return FALSE;
    }
    }
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment