sugarWidgetField = new SugarWidgetFieldDateTime48616Mock(new LayoutManager()); global $current_user, $timedate; $timedate = TimeDate::getInstance(); $current_user = SugarTestUserUtilities::createAnonymousUser(); //$this->setOutputBuffering = false; } public function tearDown() { SugarTestUserUtilities::removeAllCreatedAnonymousUsers(); } public function testQueryFilterBefore() { $layout_def = array ('name' => 'donotinvoiceuntil_c', 'table_key' => 'self', 'qualifier_name' => 'before', 'input_name0' => 'Today', 'input_name1' => '01:00am', 'input_name2' => 'on', 'table_alias' => 'pordr_purchaseorders_cstm', 'column_key' => 'self:donotinvoiceuntil_c', 'type' => 'datetimecombo'); $filter = $this->sugarWidgetField->queryFilterBefore($layout_def); if($GLOBALS['db']->getScriptName() == 'mysql') { $this->assertRegExp("/pordr_purchaseorders_cstm\.donotinvoiceuntil_c < \'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\'/", $filter); } /* else if($GLOBALS['db']->getScriptName() == 'db2') { } */ } public function testQueryFilterAfter() { $layout_def = array ('name' => 'donotinvoiceuntil_c', 'table_key' => 'self', 'qualifier_name' => 'after', 'input_name0' => 'Today', 'input_name1' => '01:00am', 'input_name2' => 'on', 'table_alias' => 'pordr_purchaseorders_cstm', 'column_key' => 'self:donotinvoiceuntil_c', 'type' => 'datetimecombo'); $filter = $this->sugarWidgetField->queryFilterAfter($layout_def); if($GLOBALS['db']->getScriptName() == 'mysql') { $this->assertRegExp("/pordr_purchaseorders_cstm\.donotinvoiceuntil_c > \'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\'/", $filter); } } public function testQueryFilterNotEqualsStr() { $layout_def = array ('name' => 'donotinvoiceuntil_c', 'table_key' => 'self', 'qualifier_name' => 'not_equals', 'input_name0' => 'Today', 'input_name1' => '01:00am', 'input_name2' => 'on', 'table_alias' => 'pordr_purchaseorders_cstm', 'column_key' => 'self:donotinvoiceuntil_c', 'type' => 'datetimecombo'); $filter = $this->sugarWidgetField->queryFilterNot_Equals_str($layout_def); $filter = preg_replace('/\s{2,}/', ' ', $filter); $filter = str_replace("\n", '', $filter); $filter = str_replace("\r", '', $filter); if($GLOBALS['db']->getScriptName() == 'mysql') { $this->assertRegExp("/\(pordr_purchaseorders_cstm\.donotinvoiceuntil_c IS NULL OR pordr_purchaseorders_cstm\.donotinvoiceuntil_c < \'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\' OR pordr_purchaseorders_cstm\.donotinvoiceuntil_c > \'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\'\)/", $filter); } /* else if($GLOBALS['db']->getScriptName() == 'db2') { $this->assertRegExp("/\(pordr_purchaseorders_cstm\.donotinvoiceuntil_c IS NULL OR pordr_purchaseorders_cstm\.donotinvoiceuntil_c < CONVERT\(datetime\,'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\',\d+?\) OR pordr_purchaseorders_cstm\.donotinvoiceuntil_c > CONVERT\(datetime\,'\d{4}\-\d{1,2}-\d{1,2} \d{2}:\d{2}:\d{2}\',120\)\)/", $filter); } */ } } class SugarWidgetFieldDateTime48616Mock extends SugarWidgetFieldDateTime { protected function queryDateOp($arg1, $arg2, $op, $type) { global $timedate; if($arg2 instanceof DateTime) { $arg2 = $timedate->asDbType($arg2, $type); } return "$arg1 $op ".$GLOBALS['db']->convert($GLOBALS['db']->quoted($arg2), $type)."\n"; } } ?>