예제 #1
0
 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();
 }