assertTrue($this->plugin->validateFilters($input, $filters, $test), $message); } else { $this->assertFalse($this->plugin->validateFilters($input, $filters, $test), $message); } } function data() { $body1 = << 'title', 'is-not-defined' => false, 'param-filters' => array(), 'text-matches' => array()); // Check if FOO is defined $filter2 = array('name' => 'foo', 'is-not-defined' => false, 'param-filters' => array(), 'text-matches' => array()); // Check if TITLE is not defined $filter3 = array('name' => 'title', 'is-not-defined' => true, 'param-filters' => array(), 'text-matches' => array()); // Check if FOO is not defined $filter4 = array('name' => 'foo', 'is-not-defined' => true, 'param-filters' => array(), 'text-matches' => array()); // Check if TEL[TYPE] is defined $filter5 = array( 'name' => 'tel', 'is-not-defined' => false, 'test' => 'anyof', 'param-filters' => array( array( 'name' => 'type', 'is-not-defined' => false, 'text-match' => null ), ), 'text-matches' => array(), ); // Check if TEL[FOO] is defined $filter6 = $filter5; $filter6['param-filters'][0]['name'] = 'FOO'; // Check if TEL[TYPE] is not defined $filter7 = $filter5; $filter7['param-filters'][0]['is-not-defined'] = true; // Check if TEL[FOO] is not defined $filter8 = $filter5; $filter8['param-filters'][0]['name'] = 'FOO'; $filter8['param-filters'][0]['is-not-defined'] = true; // Combining property filters $filter9 = $filter5; $filter9['param-filters'][] = $filter6['param-filters'][0]; $filter10 = $filter5; $filter10['param-filters'][] = $filter6['param-filters'][0]; $filter10['test'] = 'allof'; // Check if URL contains 'google' $filter11 = array( 'name' => 'url', 'is-not-defined' => false, 'test' => 'anyof', 'param-filters' => array(), 'text-matches' => array( array( 'match-type' => 'contains', 'value' => 'google', 'negate-condition' => false, 'collation' => 'i;octet', ), ), ); // Check if URL contains 'bing' $filter12 = $filter11; $filter12['text-matches'][0]['value'] = 'bing'; // Check if URL does not contain 'google' $filter13 = $filter11; $filter13['text-matches'][0]['negate-condition'] = true; // Check if URL does not contain 'bing' $filter14 = $filter11; $filter14['text-matches'][0]['value'] = 'bing'; $filter14['text-matches'][0]['negate-condition'] = true; // Param filter with text $filter15 = $filter5; $filter15['param-filters'][0]['text-match'] = array( 'match-type' => 'contains', 'value' => 'WORK', 'collation' => 'i;octet', 'negate-condition' => false, ); $filter16 = $filter15; $filter16['param-filters'][0]['text-match']['negate-condition'] = true; // Param filter + text filter $filter17 = $filter5; $filter17['test'] = 'anyof'; $filter17['text-matches'][] = array( 'match-type' => 'contains', 'value' => '444', 'collation' => 'i;octet', 'negate-condition' => false, ); $filter18 = $filter17; $filter18['text-matches'][0]['negate-condition'] = true; $filter18['test'] = 'allof'; return array( // Basic filters array($body1, array($filter1), 'anyof',true), array($body1, array($filter2), 'anyof',false), array($body1, array($filter3), 'anyof',false), array($body1, array($filter4), 'anyof',true), // Combinations array($body1, array($filter1, $filter2), 'anyof',true), array($body1, array($filter1, $filter2), 'allof',false), array($body1, array($filter1, $filter4), 'anyof',true), array($body1, array($filter1, $filter4), 'allof',true), array($body1, array($filter2, $filter3), 'anyof',false), array($body1, array($filter2, $filter3), 'allof',false), // Basic parameters array($body1, array($filter5), 'anyof', true, 'TEL;TYPE is defined, so this should return true'), array($body1, array($filter6), 'anyof', false, 'TEL;FOO is not defined, so this should return false'), array($body1, array($filter7), 'anyof', false, 'TEL;TYPE is defined, so this should return false'), array($body1, array($filter8), 'anyof', true, 'TEL;TYPE is not defined, so this should return true'), // Combined parameters array($body1, array($filter9), 'anyof', true), array($body1, array($filter10), 'anyof', false), // Text-filters array($body1, array($filter11), 'anyof', true), array($body1, array($filter12), 'anyof', false), array($body1, array($filter13), 'anyof', false), array($body1, array($filter14), 'anyof', true), // Param filter with text-match array($body1, array($filter15), 'anyof', true), array($body1, array($filter16), 'anyof', false), // Param filter + text filter array($body1, array($filter17), 'anyof', true), array($body1, array($filter18), 'anyof', false), array($body1, array($filter18), 'anyof', false), ); } }