public function getScriptsForProfile(KalFunction $function, EiProfil $profile)
 {
     if ($function == null || $profile == null) {
         return null;
     }
     return $this->getInstance()->createQuery('s')->select('s.script_id')->where('KalFunction.function_id=s.function_id And KalFunction.function_ref=s.function_ref')->AndWhere('KalFunction.function_id=? And KalFunction.function_ref=? ', array($function->getFunctionId(), $function->getFunctionRef()))->AndWhere('EiScriptVersion.script_id=s.script_id And EiScriptVersion.profile_id=? And EiScriptVersion.profile_ref=?', array($profile->getProfileId(), $profile->getProfileRef()))->AndWhere('EiFunctionHasCommande.script_id=s.script_id')->fetchArray();
 }
 public static function createOrUpdateDistantParams(EiProjet $ei_project, EiProfil $ei_profile, KalFunction $kal_function, $data, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     try {
         $conn->beginTransaction();
         //Début de la transaction
         //Appel du webservice
         $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "/serviceweb/project/parameter/createOrUpdate.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'function_id' => $kal_function->getFunctionId(), 'function_ref' => $kal_function->getFunctionRef(), 'data' => $data));
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du paramètre pour traitement
         if (count($array_result) == 0) {
             return false;
         }
         if (array_key_exists("error", $array_result)) {
             return false;
         }
         if (!$array_result[0]) {
             return false;
         }
         //Rechargement d'un paramètre
         self::reload($array_result, $conn);
         $conn->commit();
         return $array_result[0]['fp_id'];
     } catch (Exception $e) {
         $conn->rollback();
         return false;
         throw $e;
     }
 }
示例#3
0
 public function checkLogicBetweenProjectAndProfile(EiProjet $ei_project, EiProfil $ei_profile)
 {
     //On vérifie si le profil appartient bien au projet
     if ($ei_project->getProjectId() != $ei_profile->getProjectId() || $ei_project->getRefId() != $ei_profile->getProjectRef()) {
         $this->forward404('Environment  don\'t belong to project');
     }
 }
 /**
  * @param EiProjet $project
  * @param EiProfil $profile
  *
  * @return EiActiveIteration
  */
 public function getActiveIteration(EiProjet $project = null, EiProfil $profile = null)
 {
     if ($project == null || $profile == null) {
         return null;
     } else {
         return $this->findOneByProjectRefAndProjectIdAndProfileRefAndProfileId($project->getRefId(), $project->getProjectId(), $profile->getProfileRef(), $profile->getProfileId());
     }
 }
 public function saveActiveIteration($iteration_id, EiProjet $ei_project, EiProfil $ei_profile, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $itLink = new EiActiveIteration();
     $itLink->setProjectId($ei_project->getProjectId());
     $itLink->setProjectRef($ei_project->getRefId());
     $itLink->setProfileId($ei_profile->getProfileId());
     $itLink->setProfileRef($ei_profile->getProfileRef());
     $itLink->setIterationId($iteration_id);
     $itLink->save($conn);
 }
示例#6
0
 public function getVersionNoticeByProfil(EiProfil $profil, EiProjet $ei_project, $lang)
 {
     $notice = $this->getKalFonction()->getNotice();
     $result = Doctrine_Core::getTable('EiVersionNotice')->createQuery('v')->where('EiNoticeProfil.notice_id=v.notice_id And EiNoticeProfil.notice_ref=v.notice_ref
                         And EiNoticeProfil.version_notice_id=v.version_notice_id ')->andWhere("EiNoticeProfil.profile_id=? And EiNoticeProfil.profile_ref=?", array($profil->getProfileId(), $profil->getProfileRef()))->andWhere("v.notice_id=? And v.notice_ref=?", array($notice->getNoticeId(), $notice->getNoticeRef()))->andWhere('v.lang=?', array($lang))->execute();
     if ($result->getFirst()) {
         return $result->getFirst();
     }
     //Si la version de notice n'est pas spécifiée pour la langue donnée,
     // on retourne celle definie avec la langue definie par défaut sur le projet
     $result2 = Doctrine_Core::getTable('EiVersionNotice')->createQuery('v')->where('EiNoticeProfil.notice_id=v.notice_id And EiNoticeProfil.notice_ref=v.notice_ref
                         And EiNoticeProfil.version_notice_id=v.version_notice_id ')->andWhere("EiNoticeProfil.profile_id=? And EiNoticeProfil.profile_ref=?", array($profil->getProfileId(), $profil->getProfileRef()))->andWhere("v.notice_id=? And v.notice_ref=?", array($notice->getNoticeId(), $notice->getNoticeRef()))->andWhere('v.lang=? ', array($ei_project->getDefaultNoticeLang()))->execute();
     if ($result2->getFirst()) {
         return $result2->getFirst();
     }
     //Si aucune version de notice est trouvé on retourne null
     return null;
 }
示例#7
0
 public static function getScriptUpdateResult(EiProjet $ei_project, EiProfil $kal_profil, EiTicket $ei_ticket, $json_string, KalFunction $kal_function, EiUser $ei_user, $script_id = 0, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $ei_subject = Doctrine_Core::getTable("EiSubject")->findOneByPackageIdAndPackageRef($ei_ticket->getTicketId(), $ei_ticket->getTicketRef());
     if ($ei_subject == null) {
         return array("success" => false, "message" => "Intervention not found ... ");
     }
     //Intervention non trouvée
     //Appel du webservice
     $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/project/script/update.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $ei_ticket->getTicketId(), 'ticket_ref' => $ei_ticket->getTicketRef(), 'profile_id' => $kal_profil->getProfileId(), 'profile_ref' => $kal_profil->getProfileRef(), 'function_id' => $kal_function->getFunctionId(), 'function_ref' => $kal_function->getFunctionRef(), 'script_id' => $script_id, 'user_id' => $ei_user->getUserId(), 'user_ref' => $ei_user->getRefId(), 'package_name' => "Package_S" . $ei_subject->getId(), 'json_string' => rawurlencode($json_string)));
     //Récupération du projet pour traitement
     //        if ($result_update == null) return null;
     //        $result_file->loadXML($result_update);
     //        $result_file->save('result_update.xml'); /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     //        $result_item=$result_file->documentElement;
     //        if ($result_item->getElementsByTagName("error")->item(0)):
     //            return -1;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_error")->item(0)):
     //            return 0;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_ok")->item(0)):
     //            return 1;
     //        endif;
     try {
         $conn->beginTransaction();
         //Récupération du ticket pour traitement
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du projet pour traitement
         if (count($array_result) == 0) {
             return array("success" => false, "message" => "Error on transaction");
         }
         if (array_key_exists("error", $array_result)) {
             return array("success" => false, "message" => $array_result["error"]);
         }
         if (array_key_exists("process_error", $array_result)) {
             return array("success" => false, "message" => $array_result["process_error"]);
         }
         if (!$array_result[0]) {
             return array("success" => false, "message" => "Empty result content");
         }
         self::reload($array_result, $conn);
         $conn->commit();
         return array("success" => true, "message" => "Transaction maded successfully");
     } catch (Exception $e) {
         throw new Exception($e);
         $conn->rollback();
         return array("success" => false, "message" => "Error on reload process ...");
     }
 }
 public function getCurrentNoticeVersion(EiProjet $ei_project, EiProfil $ei_profile, KalFunction $kal_function, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $q = $conn->fetchAll("select vn.*, np.* from ei_version_notice vn \n            left join ei_notice n on n.notice_id=vn.notice_id and n.notice_ref=vn.notice_ref \n            left join kal_function k on k.function_id=n.function_id and k.function_ref= n.function_ref\n            left join ei_notice_profil np on vn.notice_id=np.notice_id and np.notice_ref=vn.notice_ref and np.version_notice_id=vn.version_notice_id \n\n            where k.function_id=" . $kal_function->getFunctionId() . " and k.function_ref=" . $kal_function->getFunctionRef() . "\n            and np.profile_id=" . $ei_profile->getProfileId() . " and np.profile_ref=" . $ei_profile->getProfileRef() . " and vn.lang='" . $ei_project->getDefaultNoticeLang() . "'");
     if (count($q) > 0) {
         return $q[0];
     }
     return array();
 }
示例#9
0
    <ul class="nav marge-none">
        <li class="divider-vertical"> </li>
        <li class="dropdown">

            <button id="scenarios_menu" class="btn dropdown-toggle" data-toggle="dropdown" role="button" data-target="#"> 
                <img src="/images/boutons/engrenage_small.png" alt="" class="pull-left" title="Scenarios menu"/>&nbsp;Test Suites <span class="caret"></span>
            </button>
            <ul class="dropdown-menu">  
                    <li class="save_test_suit" ><a href="#" alt="Save"><img src="/images/boutons/save_scenery.png" alt="Save" /> Save </a></li>
                    <li class="create_scenario_clone">
                        <a href="#" alt="Save as" title="Copy the scenario"> <img src="/images/boutons/save_scenery.png" alt="Save as"/> Save as </a>
                    </li>

                    <li> 
                        <a href="<?php 
    echo url_for2('projet_eiscenario', array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'action' => 'delete', 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'profile_name' => EiProfil::slugifyProfileName($ei_profile->getName()), 'id' => $ei_scenario->getId()), array('confirm' => "Sure about deleting test suite? this involve deleting all versions and functions "));
    ?>
" alt="Delete" title="Delete the scenario"> 
                            <img src="/images/boutons/delete_test_suite.png" alt="Delete" /> Delete</a>

                    </li> 

                <?php 
    if (isset($ei_version) && $ei_version != null) {
        ?>
                <?php 
    } else {
        ?>
    
                  <?php 
        $profil_scenario = Doctrine_Core::getTable("EiProfilScenario")->findOneByEiScenarioIdAndProfileIdAndProfileRef($ei_scenario->getId(), $ei_profile->getProfileId(), $ei_profile->getProfileRef());
示例#10
0
 /**
  * Méthode permettant de récupérer la version associée
  * au profil passé en paramètres.
  * @param type $profile_id
  * @return type
  * @throws Exception 
  */
 public function getVersionForProfil(EiProfil $ei_profile)
 {
     $versions = Doctrine_Query::create()->from('EiVersion v ')->where('EiProfilScenario.ei_scenario_id=v.ei_scenario_id And EiProfilScenario.ei_version_id=v.id')->AndWhere('EiProfilScenario.ei_scenario_id=? And
                         EiProfilScenario.profile_id=? And EiProfilScenario.profile_ref=?', array($this->getId(), $ei_profile->getProfileId(), $ei_profile->getProfileRef()))->execute();
     if (!$versions->getFirst()) {
         return null;
     }
     return $versions->getFirst();
 }
                    <?php 
    }
    ?>
                </td>
                <td>
                    <?php 
    if ($isTs) {
        ?>

                    <?php 
        echo link_to2(ei_icon('ei_show'), 'eitestset_oracle', array('project_id' => $project_id, 'project_ref' => $project_ref, 'ei_scenario_id' => $graph->getEiScenario()->getId(), 'ei_test_set_id' => $graph->getEiTestSet()->getId(), 'profile_name' => EiProfil::slugifyProfileName($profile_name), 'profile_id' => $profile_id, 'profile_ref' => $profile_ref), array('target' => '_blank', 'title' => 'Oracle'));
        ?>

                    &nbsp;&nbsp;
                    <?php 
        echo link_to2('<i class="fa fa-code fa-lg"></i>', "eitestset_oracle_download", array('project_id' => $project_id, 'project_ref' => $project_ref, 'ei_scenario_id' => $graph->getEiScenario()->getId(), 'ei_test_set_id' => $graph->getEiTestSet()->getId(), 'sf_format' => "xml", 'profile_name' => EiProfil::slugifyProfileName($profile_name), 'profile_id' => $profile_id, 'profile_ref' => $profile_ref), array('target' => '_blank', 'title' => 'XML logs'));
        ?>
                    &nbsp;&nbsp;
                    <a href="<?php 
        echo $urlExcelRequest;
        ?>
" data-id="<?php 
        echo $graph->getEiTestSet()->getId();
        ?>
" title="Excel" class="excel-open-logs excelIcon">
                        <img src="<?php 
        echo sfConfig::get("app_icone_excel_24x24_path");
        ?>
" alt="" width="20" title="Open logs in Excel" class="excel-icon-img disabledOracle" />
                        <?php 
        echo sfConfig::get("app_loader_excel_button");
示例#12
0
 public function setEiProfile(EiProfil $ei_profile)
 {
     $this->setProfileId($ei_profile->getProfileId());
     $this->setProfileRef($ei_profile->getProfileRef());
 }
示例#13
0
 public function MigrateManyFunctions(EiProjet $ei_project, EiProfil $ei_profile, sfGuardUser $guard, $tab_functions)
 {
     $result_file = new DOMDocument();
     //Appel du webservice
     $result_update = self::loadResultOfWebServiceForMigration(MyFunction::getPrefixPath(null) . "/serviceweb/bug/migrateMany.xml", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'profile_id' => $ei_profile->getProfileId(), 'profile_ref' => $ei_profile->getProfileRef(), 'guard_id' => $guard->getId(), 'tab_functions' => $tab_functions));
     //Récupération du projet pour traitement
     if ($result_update == null) {
         return null;
     }
     $result_file->loadXML($result_update);
     $result_file->save('result_migrate_many_bug.xml');
     /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     $result_item = $result_file->documentElement;
     if ($result_item->getElementsByTagName("process_error")->item(0)) {
         return 0;
     }
     if ($result_item->getElementsByTagName("process_ok")->item(0)) {
         return true;
     }
 }
示例#14
0
 public function getAndParseFunctionAndProjectParametersToArray(EiProfil $ei_profile, EiFonction $ei_fonction)
 {
     $this->kal_fonction = $ei_fonction->getKalFonction();
     //Récupération de la fonction de la plate forme centrale (script)
     $this->InFunctionsParameters = $this->kal_fonction->getInKalParams();
     //Récupération  des paramètres d'entrée de la fonction
     $this->OutFunctionsParameters = $this->kal_fonction->getOutKalParams();
     //Récupération  des paramètres de sortie de la fonction
     $this->ei_project = $ei_profile->getProject();
     $this->projectParams = $this->ei_project->getGlobalParams();
     //Paramètres du projet
     /* Transformation des resultats en tableaux pour le json */
     $this->parseFunctionAndProjectParamsToArray($this->InFunctionsParameters, $this->OutFunctionsParameters, $this->projectParams);
 }
示例#15
0
                    <a href="#delete_eiscenario_modal" data-toggle="modal">
                        &nbsp;&nbsp;<i class="icon-trash"></i>  Delete
                    </a>
                </li>
            </ul>  
 
 
 
    <div id="delete_eiscenario_modal" class="modal hide" role="dialog">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            <h3>Delete <?php 
    echo $ei_scenario->getNomScenario();
    ?>
</h3>
        </div>
        <div class="modal-body modal-body-visible-overflow">
            <?php 
    echo "You are about to delete scenario <strong>" . $ei_scenario->getNomScenario() . "</strong>. All its versions will be deleted as well as data sets.<br/> Do you really want to delete " . $ei_scenario->getNomScenario() . " ?";
    ?>
        </div>
        <div class="modal-footer">
            <a href="#!" class="btn" data-dismiss="modal">Cancel</a>   
            <a  id="delete_scenario" href="<?php 
    echo url_for2("projet_eiscenario_action", array('project_id' => $sf_request->getParameter('project_id'), 'project_ref' => $sf_request->getParameter('project_ref'), 'profile_name' => EiProfil::slugifyProfileName($sf_request->getParameter('profile_name')), 'profile_id' => $sf_request->getParameter('profile_id'), 'profile_ref' => $sf_request->getParameter('profile_ref'), 'ei_scenario_id' => $ei_scenario->getId(), 'action' => 'delete'));
    ?>
" class="btn btn-danger"> Delete </a>
        </div>
    </div>
<?php 
}
 /**
  * Génère le XML d'une fonction pour le jeu de test.
  * Elle diffère de la fonction generateXMLForPHP dans la mesure où 
  * generateXMLFromTestSet n'utilise que des tableaux pour la fonction.
  * 
  * @param type $ei_fonction
  * @param EiProfil $profile
  * @return type
  */
 public function generateXMLFromTestSet($ei_fonction, EiProfil $profile)
 {
     $prefix = MyFunction::getPrefixPath();
     // On définit le document.
     $dom = new DomDocument("1.0", "utf-8");
     $dom->formatOutput = true;
     //Génération de l'url du xsl associé à la fonction
     $user = $dom->createElement('user');
     //$user->setAttribute("xsl", $urlxsl);
     $dom->appendChild($user);
     $nom_balise_fonction = $dom->createElement('fonction-' . $ei_fonction['function_id'] . '_' . $ei_fonction['function_ref']);
     $nom_balise_fonction->setAttribute("name", $ei_fonction['name']);
     $user->appendChild($nom_balise_fonction);
     //paramètre de la fonction
     foreach ($ei_fonction['params'] as $p => $param) {
         $nom_balise_param = $dom->createElement($param['name']);
         $param_value = $dom->createTextNode($param['valeur']);
         $nom_balise_param->appendChild($param_value);
         $nom_balise_fonction->appendChild($nom_balise_param);
     }
     //paramètres de profil
     foreach ($profile->getParams() as $param) {
         $nom_balise_param = $dom->createElement($param->getStringName());
         $param_value = $dom->createTextNode($param->getValue());
         $nom_balise_param->appendChild($param_value);
         $nom_balise_fonction->appendChild($nom_balise_param);
     }
     $dom->normalizeDocument();
     // renvoie du fichier XML sous forme de chaine de caractères.
     return $dom->saveXML();
 }
示例#17
0
 public function getProfilsScenarioForUser(EiUser $user, $scenarioId)
 {
     // On définit la liste qui sera retournée à null.
     $liste = null;
     // On définit la requête SQL qui va interroger la base de données afin de récupérer les scénarios visibles par
     // l'utilisateur.
     $query = "\n                SELECT *\n                FROM ei_profil\n                WHERE (profile_ref, profile_id) IN (\n                    SELECT profile_ref, profile_id\n                    FROM ei_profil_scenario\n                    WHERE ei_scenario_id = " . $scenarioId . "\n                    AND ei_scenario_id IN (\n                        SELECT id\n                        FROM ei_scenario\n                        WHERE (project_ref, project_id) IN (\n                            SELECT project_ref, project_id\n                            FROM ei_project_user\n                            WHERE user_ref = " . $user->getRefId() . "\n                            AND user_id = " . $user->getUserId() . "\n                        )\n                    )\n                );\n        ";
     // On récupère sous forme de tableau les scénarios.
     $profils = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll($query);
     // Si le nombre de scénarios est supérieur à zéro, on crée les objets associés.
     if (count($profils) > 0) {
         /** @var EiProfil $profilArray */
         foreach ($profils as $profilArray) {
             $temp = new EiProfil();
             $temp->setArray($profilArray);
             $liste[] = $temp;
         }
     }
     return $liste;
 }
示例#18
0
<?php

if (isset($ei_function) && isset($ei_project) && isset($ei_profile) && isset($ei_tree)) {
    $urlParams = array('project_id' => $project_id, 'project_ref' => $project_ref, 'profile_name' => EiProfil::slugifyProfileName($profile_name), 'profile_id' => $profile_id, 'profile_ref' => $profile_ref, "function_id" => $ei_function->getFunctionId(), "function_ref" => $ei_function->getFunctionRef());
    ?>

<table class="table table-bordered table-striped dataTable"> 
    <tbody> 
        <tr>
            <th>Title</th>
            <td><?php 
    echo $ei_tree->getName();
    ?>
</td>
        </tr>
        <tr>
            <th>Criticity</th>
            <td>
                <?php 
    $criticity_tab = $urlParams;
    $criticity_tab['action'] = 'changeCriticity';
    ?>
 
                <?php 
    $criticity = $ei_function->getCriticity() == null ? "Blank" : $ei_function->getCriticity();
    ?>
  
                <a class="<?php 
    echo 'btn  criticity  criticity-' . $criticity;
    ?>
 " id="changeFunctionCriticity"  title="Change function criticity ?"    
    }
    ?>
                    </td>
                    <td>
                      <span style="background-color:<?php 
    echo $execution->getStatusColor();
    ?>
 " class="label">
                          <?php 
    echo $execution->getStatusName();
    ?>
                      </span>
                    </td>
                    <td>
                        <?php 
    echo link_to2(ei_icon('ei_show'), 'showCampaignExecutions', array('project_id' => $project_id, 'project_ref' => $project_ref, 'profile_name' => EiProfil::slugifyProfileName($profile_name), 'profile_id' => $profile_id, 'profile_ref' => $profile_ref, 'campaign_id' => $ei_campaign->getId(), 'campaign_execution_id' => $execution->getId()), array('target' => '_blank', 'title' => 'Show details'));
    ?>
                    &nbsp; &nbsp; 
                    <?php 
    $statistics = $url_params;
    ?>
                    <?php 
    $statistics['campaign_id'] = $ei_campaign->getId();
    ?>
                    <?php 
    $statistics['campaign_execution_id'] = $execution->getId();
    $statistics['action'] = "statistics";
    ?>
 
                        <a href="<?php 
    echo url_for2("execution_stats", $statistics);
示例#20
0
 /**
  * Création des fichiers .xsl & .xml pour une fonction ou une tâche donnée.
  * 
  * @param EiEnvironnementEiProfil     $environnement  Environnement sur lequel se base la tâche et/ou la fonction. 
  * @param EiProfil                    $profil         Profil utilisé.
  * @param array                       $commands      Liste des séquences/fonctions à inclure.
  * @param EiTache|EiFunction          $objet          Fonction ou Tâche à exporter.
  */
 public static function creerXSL(sfWebRequest $request, EiProjet $ei_project, EiUser $ei_user, EiProfil $profil = null, $commands = null)
 {
     //Récupération des paramètres de profil
     $profileParams = $profil->getParamsWithName($ei_user);
     /*************************************/
     /*****     Définition du XSL     *****/
     /*************************************/
     // On définit le document.
     $dom = new DomDocument("1.0", "UTF-8");
     $dom->formatOutput = true;
     // On définit les spécificités xsl.
     //-> Feuille de Style
     $css = $dom->createElement('xsl:stylesheet');
     $css->setAttribute("xmlns:xsl", "http://www.w3.org/1999/XSL/Transform");
     $css->setAttribute("version", "1.0");
     $dom->appendChild($css);
     //-> Fichier de sortie
     $ps = $dom->createElement('xsl:preserve-space');
     $ps->setAttribute("elements", "xsl:text");
     $css->appendChild($ps);
     //-> Fichier de sortie
     $pi = $dom->createElement('xsl:output');
     $pi->setAttribute("method", "xml");
     $css->appendChild($pi);
     //-> Template à matcher.
     $tpl = $dom->createElement('xsl:template');
     $tpl->setAttribute("match", "/");
     $css = $css->appendChild($tpl);
     // On définit le jeu de test.
     $test = $dom->createElement("TestCase");
     $test->setAttribute("seleniumIDEVersion", sfConfig::get("app_xml_seleniumIDEVersion"));
     if ($profil != null) {
         $test->setAttribute("baseURL", $profil->getBaseUrl());
     } else {
         $test->setAttribute("baseURL", "default");
     }
     // Puis on l'ajoute.
     $tpl = $tpl->appendChild($test);
     /************************************************ */
     /*****     Séquences/Fonctions/Commandes     **** */
     /************************************************ */
     if ($commands != null) {
         foreach ($commands as $index => $command) {
             /******************************************** */
             /*****     Chargement des paramètres     **** */
             /******************************************** */
             // en créant la racine selense.
             $o = $dom->createElement("selenese");
             // Puis ses trois noeuds: commande, target, value.
             $cmd = $o->appendChild($dom->createElement("command"));
             $texte = $cmd->appendChild($dom->createTextNode($command->getName()));
             // Cible dynamique/statique
             $cible = $o->appendChild($dom->createElement("target"));
             $pattern = "#(?<!\\#)\\#\\{[\\w./]*}#";
             /* On commence par interpréter tous les paramètres de profil sur la cible de la commande */
             //$ch1=self::parseAndExtractProfileParamsValue($command->getCommandTarget(), $profileParams);
             $ch1 = self::replaceProfileParamWithValue($command->getCommandTarget(), $profileParams);
             $nbMatched = preg_match_all($pattern, $ch1, $matches);
             if (isset($matches) && $nbMatched > 0) {
                 $toReplace = array();
                 //$ch1 = $command->getCommandTarget();
                 // pour chaque élément qui a matché le pattern
                 foreach ($matches[0] as $m => $param) {
                     //on protège notre expression afin que celle-ci ne soit pas considérer comme un pattern de regex
                     $matches[0][$m] = '#\\' . preg_quote($param) . '#';
                     //puis l'on créer la chaine de remplacement correspondante
                     $dompar = $dom->createElement("xsl:value-of");
                     $dompar->setAttribute("select", "user/fonction-" . $command->getFunctionId() . "_" . $command->getFunctionRef() . "/parameter[@name='" . substr($param, 2, -1) . "']/value");
                     //On récupère la sous chaine de $ch à partir de $param
                     $sous_chaine_restante = strstr($ch1, $param);
                     $cible->appendChild($dom->createCDATASection(substr($ch1, 0, stripos($ch1, $sous_chaine_restante))));
                     //stripos recherche la première occurence de $sous_chaine_restante dans $ch
                     $cible->appendChild($dompar);
                     //on ajoute la section <xsl:value-of> au CDATA
                     //On extrait à la sous chaine restante le paramètre variable trouvé
                     $ch1 = substr($sous_chaine_restante, strlen($param));
                 }
                 /* Si c'est le dernier paramètre à interpreter ou si on trouvé aucun paramètre à interpreter
                    alors on ajoute le reste de texte */
                 $cible->appendChild($dom->createCDATASection($ch1));
             } else {
                 $cible->appendChild($dom->createCDATASection($ch1));
             }
             //Interprétation de la valeur de la commande
             $valeur = $o->appendChild($dom->createElement("value"));
             /* On commence par interpréter tous les paramètres de profil sur la valeur de la commande */
             //$ch2=self::parseAndExtractProfileParamsValue($command->getCommandValue(), $profileParams);
             $ch2 = self::replaceProfileParamWithValue($command->getCommandValue(), $profileParams);
             $nbMatched = preg_match_all($pattern, $ch2, $matches);
             if (isset($matches) && $nbMatched > 0) {
                 $toReplace = array();
                 //$ch = $command->getCommandValue();
                 // pour chaque élément qui a matché le pattern
                 foreach ($matches[0] as $m => $param) {
                     //on protège notre expression afin que celle-ci ne soit pas considérer comme un pattern de regex
                     $matches[0][$m] = '#\\' . preg_quote($param) . '#';
                     //puis l'on créer la chaine de remplacement correspondante
                     $dompar = $dom->createElement("xsl:value-of");
                     $dompar->setAttribute("select", "user/fonction-" . $command->getFunctionId() . "_" . $command->getFunctionRef() . "/parameter[@name='" . substr($param, 2, -1) . "']/value");
                     //$toReplace[$m]=$dompar;
                     //Méthode 2
                     $sous_chaine_restante = strstr($ch2, $param);
                     $sous_chaine_restante_debut = substr($ch2, 0, stripos($ch2, $sous_chaine_restante));
                     // Si que des caractères vides, on place cela dans une balise texte.
                     if (preg_match("/^([[:space:]]+)\$/", $sous_chaine_restante_debut)) {
                         $valeur->appendChild($dom->createElement("xsl:text", "" . $sous_chaine_restante_debut . ""));
                     } else {
                         $valeur->appendChild($dom->createCDATASection($sous_chaine_restante_debut));
                     }
                     $valeur->appendChild($dompar);
                     //                                //On extrait à la sous chaine restante le paramètre variable trouvé
                     $ch2 = substr($sous_chaine_restante, strlen($param));
                 }
                 /* Si c'est le dernier paramètre à interpreter ou si on trouvé aucun paramètre à interpreter
                    alors on ajoute le reste de texte */
                 $valeur->appendChild($dom->createCDATASection($ch2));
             } else {
                 $valeur->appendChild($dom->createCDATASection($ch2));
             }
             $tpl->appendChild($o);
         }
     }
     return $dom->saveXML();
 }
示例#21
0
            <td>Description</td>
            <td>Expected</td>
            <td>Result</td>
            <td>Selenium Logs</td>
            <td>Selenium Status</td>
        </tr> 
    </thead>
    <tbody>
        <?php 
foreach ($oracle as $key => $notice) {
    ?>
        <?php 
    //Recherche des paramètres de la fonction pour interpréter celles variables dans le jeu de test
    $params = Doctrine_Core::getTable('EiTestSetParam')->getParamForTestSetAndEiTestFunction($ei_test_set_id, $notice['ei_test_set_function_id']);
    $paramsOut = Doctrine_Core::getTable('EiTestSetParam')->getParamForLogAndEiTestSetFunction($ei_test_set_id, $notice['ei_test_set_function_id']);
    $urlFuncSubjects = url_for2("subjectFunction", array("function_id" => $notice['function_id'], "function_ref" => $notice['function_ref'], "action" => "functionSubjects", 'profile_name' => EiProfil::slugifyProfileName($profile_name), 'profile_id' => $profile_id, 'profile_ref' => $profile_ref, 'project_id' => $project_id, 'project_ref' => $project_ref));
    ?>
        <tr class="state-<?php 
    echo strtolower($notice["statut_func_name"]);
    ?>
">
            <td><?php 
    echo $notice['position'];
    //.'/'.count($params).'/'.count($profileParams)
    ?>
</td>
            <td>
                <a href="<?php 
    echo $urlFuncSubjects;
    ?>
" target="_blank">
示例#22
0
 public function getLastIterationForProfile(EiProfil $ei_profile, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     return Doctrine_core::getTable("EiIteration")->getLastIterationForProfile($this->getProjectId(), $this->getProjectRef(), $this->getId(), $ei_profile->getProfileId(), $ei_profile->getProfileRef(), $conn);
 }