+ /* UFC_NameTokens
+ */
+ $tests['nametoken'] = array(
+ // !soundex, !exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xelnor%\''),
+ new UFC_NameTokens('xelnor'), 1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xe%\''),
+ new UFC_NameTokens('xe'), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xe%\' OR sn.token LIKE \'barr%\''),
+ new UFC_NameTokens(array('xe', 'barr')), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'zzzzzzzz%\''),
+ new UFC_NameTokens('zzzzzzzz'), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'barr%\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('barr', UFC_NameTokens::FLAG_PUBLIC), -1),
+
+ // !soundex, exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'xelnor\''),
+ new UFC_NameTokens('xelnor', array(), false, true), 1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token IN (\'xelnor\', \'barrois\')'),
+ new UFC_NameTokens(array('xelnor', 'barrois'), array(), false, true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'zzzzzzzz\''),
+ new UFC_NameTokens('zzzzzzzz', array(), false, true), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token IN (\'zzzzzzzz\', \'yyyyyyyy\')'),
+ new UFC_NameTokens(array('zzzzzzzz', 'yyyyyyyy'), array(), false, true), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'barrois\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('barrois', UFC_NameTokens::FLAG_PUBLIC, false, true), -1),
+
+ // soundex, !exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex = \'XLNO\''),
+ new UFC_NameTokens('xelnor', array(), true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex IN (\'XLNO\', \'BROS\')'),
+ new UFC_NameTokens(array('xelnor', 'barrois'), array(), true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex = \'BROS\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('barrois', UFC_NameTokens::FLAG_PUBLIC, true), -1),
+ );
+
+ /* UFC_Nationality
+ */
+ $tests['nationality'] = array(
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('BR'), array('BR'), array('BR')),
+ new UFC_Nationality('BR'), -1),
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('BR', 'US'), array('BR', 'US'), array('BR', 'US')),
+ new UFC_Nationality('BR', 'US'), -1),
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('__'), array('__'), array('__')),
+ new UFC_Nationality('__'), 0),
+ );
+
+ /* UFC_Dead
+ */
+ $tests['dead'] = array(
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL'),
+ new UFC_Dead(), -1),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate > {?}', '2008-01-01'),
+ new UFC_Dead('>', '2008-01-01'), -1),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate < {?}', '1600-01-01'),
+ new UFC_Dead('<', '1600-01-01'), 0),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate > {?}', date('Y-m-d')),
+ new UFC_Dead('>', 'now'), 0),
+ );
+
+ /* UFC_Registered
+ */
+ $tests['register'] = array(
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\''),
+ new UFC_Registered(true), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\''),
+ new UFC_Registered(), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', '2008-01-01'),
+ new UFC_Registered(true, '>', '2008-01-01'), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', '2008-01-01'),
+ new UFC_Registered(false, '>', '2008-01-01'), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date < {?}', '1700-01-01'),
+ new UFC_Registered(true, '<', '1700-01-01'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date < {?}', '1700-01-01'),
+ new UFC_Registered(false, '<', '1700-01-01'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', date('Y-m-d')),
+ new UFC_Registered(true, '>', 'now'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', date('Y-m-d')),
+ new UFC_Registered(false, '>', 'now'), 0),
+ );
+