Skip to content
Snippets Groups Projects
Verified Commit 775c7267 authored by Théodore Biadala's avatar Théodore Biadala
Browse files

Issue #3462561 by catch, smustgrave: Stop using a data provider in UserPasswordResetTest

(cherry picked from commit a6f5d7d3)
parent dd994edd
No related branches found
No related tags found
17 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
Pipeline #237933 passed
...@@ -240,10 +240,8 @@ public function testUserPasswordReset(): void { ...@@ -240,10 +240,8 @@ public function testUserPasswordReset(): void {
/** /**
* Tests password reset functionality when user has set preferred language. * Tests password reset functionality when user has set preferred language.
*
* @dataProvider languagePrefixTestProvider
*/ */
public function testUserPasswordResetPreferredLanguage($setPreferredLangcode, $activeLangcode, $prefix, $visitingUrl, $expectedResetUrl, $unexpectedResetUrl): void { public function testUserPasswordResetPreferredLanguage(): void {
// Set two new languages. // Set two new languages.
ConfigurableLanguage::createFromLangcode('fr')->save(); ConfigurableLanguage::createFromLangcode('fr')->save();
ConfigurableLanguage::createFromLangcode('zh-hant')->save(); ConfigurableLanguage::createFromLangcode('zh-hant')->save();
...@@ -255,34 +253,37 @@ public function testUserPasswordResetPreferredLanguage($setPreferredLangcode, $a ...@@ -255,34 +253,37 @@ public function testUserPasswordResetPreferredLanguage($setPreferredLangcode, $a
$config->set('url.prefixes', ['en' => '', 'fr' => 'fr', 'zh-hant' => 'zh'])->save(); $config->set('url.prefixes', ['en' => '', 'fr' => 'fr', 'zh-hant' => 'zh'])->save();
$this->rebuildContainer(); $this->rebuildContainer();
$this->account->preferred_langcode = $setPreferredLangcode; foreach ($this->languagePrefixTestProvider() as $scenario) {
$this->account->save(); [$setPreferredLangcode, $activeLangcode, $prefix, $visitingUrl, $expectedResetUrl, $unexpectedResetUrl] = array_values($scenario);
$this->assertSame($setPreferredLangcode, $this->account->getPreferredLangcode(FALSE)); $this->account->preferred_langcode = $setPreferredLangcode;
$this->account->save();
$this->assertSame($setPreferredLangcode, $this->account->getPreferredLangcode(FALSE));
// Test Default langcode is different from active langcode when visiting different.
if ($setPreferredLangcode !== 'en') {
$this->drupalGet($prefix . '/user/password');
$this->assertSame($activeLangcode, $this->getSession()->getResponseHeader('Content-language'));
$this->assertSame('en', $this->languageManager->getDefaultLanguage()->getId());
}
// Test password reset with language prefixes.
$this->drupalGet($visitingUrl);
$edit = ['name' => $this->account->getAccountName()];
$this->submitForm($edit, 'Submit');
$this->assertValidPasswordReset($edit['name']);
// Test Default langcode is different from active langcode when visiting different. $resetURL = $this->getResetURL();
if ($setPreferredLangcode !== 'en') { $this->assertStringContainsString($expectedResetUrl, $resetURL);
$this->drupalGet($prefix . '/user/password'); $this->assertStringNotContainsString($unexpectedResetUrl, $resetURL);
$this->assertSame($activeLangcode, $this->getSession()->getResponseHeader('Content-language'));
$this->assertSame('en', $this->languageManager->getDefaultLanguage()->getId());
} }
// Test password reset with language prefixes.
$this->drupalGet($visitingUrl);
$edit = ['name' => $this->account->getAccountName()];
$this->submitForm($edit, 'Submit');
$this->assertValidPasswordReset($edit['name']);
$resetURL = $this->getResetURL();
$this->assertStringContainsString($expectedResetUrl, $resetURL);
$this->assertStringNotContainsString($unexpectedResetUrl, $resetURL);
} }
/** /**
* Data provider for testUserPasswordResetPreferredLanguage(). * Provides scenarios for testUserPasswordResetPreferredLanguage().
* *
* @return array * @return array
*/ */
public static function languagePrefixTestProvider() { protected function languagePrefixTestProvider() {
return [ return [
'Test language prefix set as \'\', visiting default with preferred language as en' => [ 'Test language prefix set as \'\', visiting default with preferred language as en' => [
'setPreferredLangcode' => 'en', 'setPreferredLangcode' => 'en',
......
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