public function exportSetup($data)
 {
     date_default_timezone_set('America/New_York');
     $mock = new MockQueryResultIterator($data);
     CFDBQueryResultIteratorFactory::getInstance()->setQueryResultsIteratorMock($mock);
     global $wpdb;
     $wpdb = new WPDB_Mock();
     $fields = array();
     foreach (array_keys($data[0]) as $key) {
         $fields[] = (object) array('field_name' => $key);
     }
     $wpdb->getResultReturnVal = $fields;
     $this->bufferOutput = true;
 }
 public function setUp()
 {
     date_default_timezone_set('America/New_York');
     $str = file_get_contents('HtmlTemplateMissingFieldTest.json');
     $data = json_decode($str, true);
     $mock = new MockQueryResultIterator($data);
     CFDBQueryResultIteratorFactory::getInstance()->setQueryResultsIteratorMock($mock);
     global $wpdb;
     $wpdb = new WPDB_Mock();
     $fields = array();
     foreach (array_keys($data[0]) as $key) {
         $fields[] = (object) array('field_name' => $key);
     }
     $wpdb->getResultReturnVal = $fields;
 }
 public function setUp()
 {
     parent::setup();
     date_default_timezone_set('America/New_York');
     $dataJson = '[
 {
     "Submitted": "1401303038.5193",
     "name": "C",
     "date": "1/2/2010",
     "Submitted Login": "******",
     "Submitted From": "192.168.1.1",
     "fields_with_file" : ""
 },
 {
     "Submitted": "1401303039.5193",
     "name": "A",
     "date": "5/25/1997",
     "Submitted Login": "******",
     "Submitted From": "192.168.1.1",
     "fields_with_file" : ""
 },
 {
     "Submitted": "1401303040.5193",
     "name": "B",
     "date": "5/25/2003",
     "Submitted Login": "******",
     "Submitted From": "192.168.1.1",
     "fields_with_file" : ""
 }
 ]';
     $data = json_decode($dataJson, true);
     $mock = new MockQueryResultIterator($data);
     CFDBQueryResultIteratorFactory::getInstance()->setQueryResultsIteratorMock($mock);
     global $wpdb;
     $wpdb = new WPDB_Mock();
     $fields = array();
     foreach (array_keys($data[0]) as $key) {
         $fields[] = (object) array('field_name' => $key);
     }
     $wpdb->getResultReturnVal = $fields;
 }
Esempio n. 4
0
 /**
  * Execute the query and set up the results iterator
  * @param string|array $formName (if array, must be array of string)
  * @param null|string $submitTimeKeyName
  * @return void
  */
 protected function setDataIterator($formName, $submitTimeKeyName = null)
 {
     $submitTimes = $this->queryRandomSubmitTimes($formName);
     $sql = $this->getPivotQuery($formName, false, $submitTimes);
     $queryOptions = array();
     if ($submitTimeKeyName) {
         $queryOptions['submitTimeKeyName'] = $submitTimeKeyName;
     }
     if (isset($this->options['limit']) && $this->hasFilterOrTransform()) {
         // have data iterator apply the limit if it is not already
         // being applied in SQL directly, which we do when there are
         // no filter constraints.
         $queryOptions['limit'] = $this->options['limit'];
     }
     $unbuffered = false;
     if (isset($this->options['unbuffered'])) {
         $queryOptions['unbuffered'] = $this->options['unbuffered'];
         $unbuffered = $queryOptions['unbuffered'] == 'true';
     }
     if ($this->debug) {
         $queryOptions['debug'] = 'true';
     }
     $this->dataIterator = CFDBQueryResultIteratorFactory::getInstance()->newQueryIterator($unbuffered);
     if ($this->transform && !empty($this->transform->transformIterators)) {
         $postProcessOptions = $queryOptions;
         // make a copy
         // If we have a transform, then alternatively-named options like 'tlimit' are used
         // in the actual query (CFDBQueryResultIterator) whereas the normally named
         // ones are handled by the CFDBTransformEndpoint post-processor
         unset($queryOptions['limit']);
         if (isset($this->options['tlimit'])) {
             $queryOptions['limit'] = $this->options['tlimit'];
         }
         unset($queryOptions['orderby']);
         if (isset($this->options['torderby'])) {
             $queryOptions['orderby'] = $this->options['torderby'];
         }
         // These aren't really needed b/c we have already setup $this->rowTransformFilter
         unset($queryOptions['filter']);
         if (isset($this->options['tfilter'])) {
             $queryOptions['filter'] = $this->options['tfilter'];
         }
         unset($queryOptions['search']);
         if (isset($this->options['tsearch'])) {
             $queryOptions['search'] = $this->options['tsearch'];
         }
         $this->dataIterator->query($sql, $this->rowTransformFilter, $queryOptions);
         $queryDisplayColumns = $this->getColumnsToDisplay($this->dataIterator->columns);
         $this->transform->setTimezone();
         // Hookup query iterator as first transform, hookup last iterator as $this->dataIterator
         $this->transform->setDataSource($this->dataIterator);
         $this->dataIterator = $this->transform->getIterator();
         // $this->dataIterator is a CFDBTransformEndpoint
         $this->dataIterator->getPostProcessor()->query($sql, $this->rowFilter, $postProcessOptions);
         $displayColumns = $this->getColumnsToDisplay($this->dataIterator->getDisplayColumns());
         // Not sure why I need to do this to make show/hide work in some cases
         $this->dataIterator->displayColumns = empty($displayColumns) ? $queryDisplayColumns : $displayColumns;
     } else {
         // No transform, just query
         $this->dataIterator->query($sql, $this->rowFilter, $queryOptions);
         $this->dataIterator->displayColumns = $this->getColumnsToDisplay($this->dataIterator->columns);
     }
 }