예제 #1
0
 /**
  * Test the user list items.
  */
 public function testSwitchUserListItems()
 {
     $anonymous = \Drupal::config('user.settings')->get('anonymous');
     $this->setBlockConfiguration('list_size', 2);
     // Login as web user so we are sure that this account is prioritized
     // in the list if not enougth user with 'switch users' permission are
     // present.
     $this->drupalLogin($this->webUser);
     $this->drupalLogin($this->develUser);
     $this->drupalGet('');
     // Ensure that user with 'switch users' permission are prioritized.
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($this->switchUser->getUsername());
     // Ensure that blocked users are not shown in the list.
     $this->switchUser->set('status', 0)->save();
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($this->webUser->getUsername());
     $this->assertSwitchUserListNoContainsUser($this->switchUser->getUsername());
     // Ensure that anonymous user are prioritized if include_anon is set to true.
     $this->setBlockConfiguration('include_anon', TRUE);
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($anonymous);
 }
예제 #2
0
 /**
  * Test the user list items.
  */
 public function testSwitchUserListItems()
 {
     $anonymous = \Drupal::config('user.settings')->get('anonymous');
     $this->setBlockConfiguration('list_size', 2);
     // Login as web user so we are sure that this account is prioritized
     // in the list if not enougth user with 'switch users' permission are
     // present.
     $this->drupalLogin($this->webUser);
     $this->drupalLogin($this->develUser);
     $this->drupalGet('');
     // Ensure that user with 'switch users' permission are prioritized.
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($this->switchUser->getUsername());
     // Ensure that blocked users are not shown in the list.
     $this->switchUser->set('status', 0)->save();
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($this->webUser->getUsername());
     $this->assertSwitchUserListNoContainsUser($this->switchUser->getUsername());
     // Ensure that anonymous user are prioritized if include_anon is set to true.
     $this->setBlockConfiguration('include_anon', TRUE);
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->develUser->getUsername());
     $this->assertSwitchUserListContainsUser($anonymous);
     // Ensure that the switch user block works properly even if no prioritized
     // users are found (special handling for user 1).
     $this->drupalLogout();
     $this->develUser->delete();
     $this->drupalLogin($this->rootUser);
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->rootUser->getUsername());
     $this->assertSwitchUserListContainsUser($anonymous);
     // Ensure that the switch user block works properly even if no roles have
     // the 'switch users' permission associated (special handling for user 1).
     $roles = user_roles(TRUE, 'switch users');
     \Drupal::entityTypeManager()->getStorage('user_role')->delete($roles);
     $this->drupalGet('');
     $this->assertSwitchUserListCount(2);
     $this->assertSwitchUserListContainsUser($this->rootUser->getUsername());
     $this->assertSwitchUserListContainsUser($anonymous);
 }
예제 #3
0
 /**
  * Tests plural editing of DateFormatter strings
  */
 public function testPluralEditDateFormatter()
 {
     // Import some .po files with formulas to set up the environment.
     // These will also add the languages to the system.
     $this->importPoFile($this->getPoFileWithSimplePlural(), array('langcode' => 'fr'));
     // Set French as the site default language.
     $this->config('system.site')->set('default_langcode', 'fr')->save();
     // Visit User Info page before updating translation strings. Change the
     // created time to ensure that the we're dealing in seconds and it can't be
     // exactly 1 minute.
     $this->adminUser->set('created', time() - 1)->save();
     $this->drupalGet('user');
     // Member for time should be translated.
     $this->assertText("seconde", "'Member for' text is translated.");
     $path = 'admin/config/regional/translate/';
     $search = array('langcode' => 'fr', 'translation' => 'translated');
     $this->drupalPostForm($path, $search, t('Filter'));
     // Plural values for the langcode fr.
     $this->assertText('@count seconde');
     $this->assertText('@count secondes');
     // Inject a plural source string to the database. We need to use a specific
     // langcode here because the language will be English by default and will
     // not save our source string for performance optimization if we do not ask
     // specifically for a language.
     \Drupal::translation()->formatPlural(1, '1 second', '@count seconds', array(), array('langcode' => 'fr'))->render();
     $lid = db_query("SELECT lid FROM {locales_source} WHERE source = :source AND context = ''", array(':source' => "1 second" . LOCALE_PLURAL_DELIMITER . "@count seconds"))->fetchField();
     // Look up editing page for this plural string and check fields.
     $search = array('string' => '1 second', 'langcode' => 'fr');
     $this->drupalPostForm('admin/config/regional/translate', $search, t('Filter'));
     // Save complete translations for the string in langcode fr.
     $edit = array("strings[{$lid}][translations][0]" => '1 seconde updated', "strings[{$lid}][translations][1]" => '@count secondes updated');
     $this->drupalPostForm($path, $edit, t('Save translations'));
     // User interface input for translating seconds should not be duplicated
     $this->assertUniqueText('@count seconds', 'Interface translation input for @count seconds only appears once.');
     // Member for time should be translated. Change the created time to ensure
     // that the we're dealing in multiple seconds and it can't be exactly 1
     // second or minute.
     $this->adminUser->set('created', time() - 2)->save();
     $this->drupalGet('user');
     $this->assertText("secondes updated", "'Member for' text is translated.");
 }