public function test_export_create()
 {
     $rule = new block_xp_rule_property(block_xp_rule_base::CT, 'I', 'str');
     $newrule = block_xp_rule::create($rule->export());
     $this->assertEquals($rule, $newrule);
     $rule = new block_xp_rule_property(block_xp_rule_base::CT, 'I', 'str');
     $rs = new block_xp_ruleset(array($rule), block_xp_ruleset::ALL);
     $newrs = block_xp_rule::create($rs->export());
     $this->assertEquals($rs, $newrs);
     // Test with bad data.
     $data = $rs->export();
     $data['_class'] = 'Does not exist';
     $this->assertFalse(block_xp_rule::create($data));
 }
예제 #2
0
 /**
  * Load the rule from {@link self::$ruledata}.
  *
  * @return void
  */
 protected function load_rule()
 {
     $ruledata = json_decode($this->ruledata, true);
     $this->rule = block_xp_rule::create($ruledata);
 }
예제 #3
0
 /**
  * Import the properties.
  *
  * @param array $properties Array of properties acquired from {@link self::export()}.
  * @return exportable
  */
 protected function import(array $properties)
 {
     if (isset($properties['rules'])) {
         $ruleslist = array();
         foreach ($properties['rules'] as $rule) {
             $ruleslist[] = block_xp_rule::create($rule);
         }
         $this->rules = $ruleslist;
     }
     unset($properties['rules']);
     parent::import($properties);
 }
예제 #4
0
 public function test_export_create()
 {
     $rule = new block_xp_rule_property(block_xp_rule_base::CT, 'I', 'str');
     $newrule = block_xp_rule::create($rule->export());
     $this->assertEquals($rule, $newrule);
     $rule = new block_xp_rule_property(block_xp_rule_base::CT, 'I', 'str');
     $rs = new block_xp_ruleset(array($rule), block_xp_ruleset::ALL);
     $newrs = block_xp_rule::create($rs->export());
     $this->assertEquals($rs, $newrs);
 }