public function testPrinterDicoIgnoreImport() { global $DB; $DB->connect(); self::restore_database(); $_SESSION['glpiactive_entity'] = 0; $_SESSION["plugin_fusioninventory_entity"] = 0; $_SESSION["glpiname"] = 'Plugin_FusionInventory'; $pfConfig = new PluginFusioninventoryConfig(); $computer = new Computer(); /* * TODO: maybe we could use some dataProvider here ? */ // Add dictionnary rule for ignore import for printer p2 $rulecollection = new RuleDictionnaryPrinterCollection(); $rule = $rulecollection->getRuleClass(); $input = array(); $input['is_active'] = 1; $input['name'] = 'Ignore import'; $input['match'] = 'AND'; $input['sub_type'] = 'RuleDictionnaryPrinter'; $input['ranking'] = 1; $rule_id = $rule->add($input); // Add criteria $rule = $rulecollection->getRuleClass(); $rulecriteria = new RuleCriteria(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['criteria'] = "name"; $input['pattern'] = 'p2'; $input['condition'] = 0; $rulecriteria->add($input); // Add action $ruleaction = new RuleAction(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['action_type'] = 'assign'; $input['field'] = '_ignore_import'; $input['value'] = '1'; $ruleaction->add($input); // Add dictionnary rule for ignore import for printer p3 $rulecollection = new RuleDictionnaryPrinterCollection(); $rule = $rulecollection->getRuleClass(); $input = array(); $input['is_active'] = 1; $input['name'] = 'rename'; $input['match'] = 'AND'; $input['sub_type'] = 'RuleDictionnaryPrinter'; $input['ranking'] = 2; $rule_id = $rule->add($input); // Add criteria $rule = $rulecollection->getRuleClass(); $rulecriteria = new RuleCriteria(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['criteria'] = "name"; $input['pattern'] = 'p3'; $input['condition'] = 0; $rulecriteria->add($input); // Add action $ruleaction = new RuleAction(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['action_type'] = 'assign'; $input['field'] = 'name'; $input['value'] = 'p3bis'; $ruleaction->add($input); // Add action $ruleaction = new RuleAction(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['action_type'] = 'assign'; $input['field'] = 'manufacturer'; $input['value'] = '1'; $ruleaction->add($input); // Add action $ruleaction = new RuleAction(get_class($rule)); $input = array(); $input['rules_id'] = $rule_id; $input['action_type'] = 'assign'; $input['field'] = 'is_global'; $input['value'] = '0'; $ruleaction->add($input); $pfici = new PluginFusioninventoryInventoryComputerInventory(); $_SESSION['plugin_fusioninventory_agents_id'] = 1; $pfici->sendCriteria("toto", $this->a_computer1_beforeformat); $computer->getFromDB(1); $this->assertEquals('ggheb7ne7', $computer->fields['serial'], 'Computer not updated correctly'); $a_printers = getAllDatasFromTable("glpi_printers"); $this->assertEquals(0, countElementsInTable('glpi_printers'), 'Printer p2 may be ignored (' . print_r($a_printers, TRUE) . ')'); $printer = new Printer(); $printer->delete(array('id' => 1), 1); $DB->query("TRUNCATE TABLE `glpi_printers`"); }