public function testGetUsersPromotion() { $atStart = TranslateSandbox::getUsers()->count(); $user = TranslateSandbox::addUser('Test user5', '*****@*****.**', 'test password'); $this->assertEquals($atStart + 1, TranslateSandbox::getUsers()->count(), 'One sandboxed user created'); TranslateSandbox::promoteUser($user); $this->assertEquals($atStart, TranslateSandbox::getUsers()->count(), 'No sandboxed users after promotion'); }
protected function makeList() { $items = array(); $requests = array(); $users = TranslateSandbox::getUsers(); /** @var User $user */ foreach ($users as $user) { $reminders = $user->getOption('translate-sandbox-reminders'); $reminders = $reminders ? explode('|', $reminders) : array(); $remindersCount = count($reminders); if ($remindersCount) { $lastReminderTimestamp = new MWTimestamp(end($reminders)); $lastReminderAgo = htmlspecialchars($lastReminderTimestamp->getHumanTimestamp()); } else { $lastReminderAgo = ''; } $requests[] = array('username' => $user->getName(), 'email' => $user->getEmail(), 'gender' => $user->getOption('gender'), 'registrationdate' => $user->getRegistration(), 'translations' => count($this->stash->getTranslations($user)), 'languagepreferences' => FormatJson::decode($user->getOption('translate-sandbox')), 'userid' => $user->getId(), 'reminderscount' => $remindersCount, 'lastreminder' => $lastReminderAgo); } // Sort the requests based on translations and registration date usort($requests, array(__CLASS__, 'translatorRequestSort')); foreach ($requests as $request) { $items[] = $this->makeRequestItem($request); } $requestsList = implode("\n", $items); return <<<HTML <div class="row request-header"> \t<div class="four columns"> \t\t<button class="language-selector unselected"> \t\t\t{$this->msg("tsb-all-languages-button-label")->escaped()} \t\t</button> \t</div> \t<div class="five columns request-count"></div> \t<div class="three columns center"> \t\t<input class="request-selector-all" name="request" type="checkbox" /> \t</div> </div> <div class="requests-list"> \t{$requestsList} </div> HTML; }