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;
    }