/**
  * Test get_autologin_key locked.
  */
 public function test_get_autologin_key_missing_locked()
 {
     global $CFG, $DB, $USER;
     $this->resetAfterTest(true);
     $user = $this->getDataGenerator()->create_user();
     $this->setUser($user);
     $CFG->enablewebservices = 1;
     $CFG->enablemobilewebservice = 1;
     $CFG->httpswwwroot = str_replace('http:', 'https:', $CFG->httpswwwroot);
     $service = $DB->get_record('external_services', array('shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE));
     $token = external_generate_token_for_current_user($service);
     $_GET['wstoken'] = $token->token;
     // Mock parameters.
     $result = external::get_autologin_key($token->privatetoken);
     $result = external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
     // Mock last time request.
     $mocktime = time() - 7 * MINSECS;
     set_user_preference('tool_mobile_autologin_request_last', $mocktime, $USER);
     $result = external::get_autologin_key($token->privatetoken);
     $result = external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
     // We just requested one token, we must wait.
     $this->expectException('moodle_exception');
     $this->expectExceptionMessage(get_string('autologinkeygenerationlockout', 'tool_mobile'));
     $result = external::get_autologin_key($token->privatetoken);
 }