public function install_ext($extension)
{
$this->login();
$this->admin_login();
$ext_path = str_replace('/', '%2F', $extension);
$this->visit('adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=' . $ext_path . '&sid=' . $this->sid);
$this->assertNotEmpty(count(self::find_element('cssSelector', '.submit-buttons')));
self::find_element('cssSelector', "input[value='Enable']")->submit();
$this->add_lang('acp/extensions');
try {
$meta_refresh = self::find_element('cssSelector', 'meta[http-equiv="refresh"]');
// Wait for extension to be fully enabled
while (sizeof($meta_refresh)) {
preg_match('#url=.+/(adm+.+)#', $meta_refresh->getAttribute('content'), $match);
self::$webDriver->execute(array('method' => 'post', 'url' => $match[1]));
$meta_refresh = self::find_element('cssSelector', 'meta[http-equiv="refresh"]');
}
} catch (\Facebook\WebDriver\Exception\NoSuchElementException $e) {
// Probably no refresh triggered
}
$this->assertContainsLang('EXTENSION_ENABLE_SUCCESS', self::find_element('cssSelector', 'div.successbox')->getText());
$this->logout();
}