/**
  * @depends testSuperUserCreateAction
  */
 public function testStickySearchActions()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     StickySearchUtil::clearDataByKey('GameRewardsSearchView');
     $value = StickySearchUtil::getDataByKey('GameRewardsSearchView');
     $this->assertNull($value);
     //Sort order desc
     $this->setGetArray(array('GameRewardsSearchForm' => array('anyMixedAttributes' => 'xyz', SearchForm::SELECTED_LIST_ATTRIBUTES => array('quantity', 'name')), 'GameReward_sort' => 'name.desc'));
     $this->runControllerWithNoExceptionsAndGetContent('gameRewards/default/');
     $data = StickySearchUtil::getDataByKey('GameRewardsSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributes' => 'xyz', 'anyMixedAttributesScope' => null, SearchForm::SELECTED_LIST_ATTRIBUTES => array('quantity', 'name'), 'sortAttribute' => 'name', 'sortDescending' => true);
     $this->assertEquals($compareData, $data);
     //Sort order asc
     StickySearchUtil::clearDataByKey('GameRewardsSearchView');
     $this->setGetArray(array('GameRewardsSearchForm' => array('anyMixedAttributes' => 'xyz', SearchForm::SELECTED_LIST_ATTRIBUTES => array('quantity', 'name')), 'GameReward_sort' => 'quantity'));
     $this->runControllerWithNoExceptionsAndGetContent('gameRewards/default/');
     $data = StickySearchUtil::getDataByKey('GameRewardsSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributes' => 'xyz', 'anyMixedAttributesScope' => null, SearchForm::SELECTED_LIST_ATTRIBUTES => array('quantity', 'name'), 'sortAttribute' => 'quantity', 'sortDescending' => false);
     $this->assertEquals($compareData, $data);
     $this->setGetArray(array('clearingSearch' => true));
     $this->runControllerWithNoExceptionsAndGetContent('gameRewards/default');
     $data = StickySearchUtil::getDataByKey('GameRewardsSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributesScope' => null, SearchForm::SELECTED_LIST_ATTRIBUTES => array('name', 'cost', 'quantity'));
     $this->assertEquals($compareData, $data);
 }
 /**
  * @depends testListForMarketingAction
  */
 public function testStickySearchActions()
 {
     StickySearchUtil::clearDataByKey('EmailTemplatesSearchView');
     $value = StickySearchUtil::getDataByKey('EmailTemplatesSearchView');
     $this->assertNull($value);
     $this->setGetArray(array('EmailTemplatesSearchForm' => array('anyMixedAttributes' => 'xyz')));
     $content = $this->runControllerWithNoExceptionsAndGetContent('emailTemplates/default/listForMarketing');
     $this->assertContains('No results found', $content);
     $data = StickySearchUtil::getDataByKey('EmailTemplatesSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributes' => 'xyz', 'anyMixedAttributesScope' => null, 'selectedListAttributes' => null);
     $this->assertEquals($compareData, $data);
     $this->setGetArray(array('EmailTemplatesSearchForm' => array('anyMixedAttributes' => 'Test')));
     $content = $this->runControllerWithNoExceptionsAndGetContent('emailTemplates/default/listForMarketing');
     $this->assertContains('1 result(s)', $content);
     $data = StickySearchUtil::getDataByKey('EmailTemplatesSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributes' => 'Test', 'anyMixedAttributesScope' => null, 'selectedListAttributes' => null, 'savedSearchId' => null);
     $this->assertEquals($compareData, $data);
     $this->setGetArray(array('clearingSearch' => true));
     $this->runControllerWithNoExceptionsAndGetContent('emailTemplates/default/listForMarketing');
     $data = StickySearchUtil::getDataByKey('EmailTemplatesSearchView');
     $compareData = array('dynamicClauses' => array(), 'dynamicStructure' => null, 'anyMixedAttributesScope' => null, 'selectedListAttributes' => null);
     $this->assertEquals($compareData, $data);
 }
 private function makeDataCollectionAndResolveSavedSearch($searchModel, $stickySearchKey = null, $setSticky = true)
 {
     $dataCollection = new SearchAttributesDataCollection($searchModel);
     if ($searchModel instanceof SavedDynamicSearchForm) {
         $getData = GetUtil::getData();
         if ($stickySearchKey != null && isset($getData['clearingSearch']) && $getData['clearingSearch']) {
             StickySearchUtil::clearDataByKey($stickySearchKey);
         }
         if ($stickySearchKey != null && null != ($stickySearchData = StickySearchUtil::getDataByKey($stickySearchKey))) {
             SavedSearchUtil::resolveSearchFormByStickyDataAndModel($stickySearchData, $searchModel);
             SavedSearchUtil::resolveSearchFormByStickySortData($getData, $searchModel, $stickySearchData);
             SearchUtil::resolveSearchFormByStickyFilterByStarredData($getData, $searchModel, $stickySearchData);
             SearchUtil::resolveSearchFormByStickyFilteredByData($getData, $searchModel, $stickySearchData);
             SearchUtil::resolveSearchFormByStickyFilteredByData($getData, $searchModel, $stickySearchData);
             $dataCollection = new SavedSearchAttributesDataCollection($searchModel);
         } else {
             SavedSearchUtil::resolveSearchFormByData($getData, $searchModel);
             if ($searchModel->savedSearchId != null) {
                 $dataCollection = new SavedSearchAttributesDataCollection($searchModel);
             }
         }
         if ($stickySearchKey != null && ($setSticky || $searchModel->getKanbanBoard() != null && $searchModel->getKanbanBoard()->getClearSticky())) {
             if ($stickySearchData == null) {
                 $stickySearchData = array();
             }
             SavedSearchUtil::setDataByKeyAndDataCollection($stickySearchKey, $dataCollection, $stickySearchData);
         }
         $searchModel->loadSavedSearchUrl = Yii::app()->createUrl($this->getModule()->getId() . '/' . $this->getId() . '/list/');
     }
     return $dataCollection;
 }
 public function testSetGetClearStickySearchByKey()
 {
     StickySearchUtil::clearDataByKey('abc');
     $value = StickySearchUtil::getDataByKey('abc');
     $this->assertNull($value);
     $savedSearch = new SavedSearch();
     $savedSearch->name = 'something';
     $savedSearch->viewClassName = 'view';
     $savedSearch->serializedData = 'someString';
     $saved = $savedSearch->save();
     $this->assertTrue($saved);
     $this->assertTrue($savedSearch->id > 0);
     $searchModel = new AAASavedDynamicSearchFormTestModel(new AAA(false));
     $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule');
     $searchModel->setListAttributesSelector($listAttributesSelector);
     $searchModel->dynamicStructure = '1 and 5';
     $searchModel->dynamicClauses = array('a', 'b');
     $searchModel->anyMixedAttributes = 'abcdef';
     $searchModel->savedSearchId = $savedSearch->id;
     $searchModel->setAnyMixedAttributesScope('xyz');
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->setIsActive();
     $kanbanBoard->setGroupByAttributeVisibleValues(array('c', 'd'));
     $kanbanBoard->setSelectedTheme('red');
     $searchModel->setKanbanBoard($kanbanBoard);
     $searchModel->getListAttributesSelector()->setSelected(array('aaaMember', 'aaaMember2'));
     $dataCollection = new SavedSearchAttributesDataCollection($searchModel);
     SavedSearchUtil::setDataByKeyAndDataCollection('abc', $dataCollection, array());
     $stickyData = StickySearchUtil::getDataByKey('abc');
     $compareData = array('dynamicClauses' => array('a', 'b'), 'dynamicStructure' => '1 and 5', 'anyMixedAttributes' => 'abcdef', 'anyMixedAttributesScope' => 'xyz', 'savedSearchId' => $savedSearch->id, SearchForm::SELECTED_LIST_ATTRIBUTES => array('aaaMember', 'aaaMember2'), 'groupByAttributeVisibleValues' => array('c', 'd'), 'selectedTheme' => 'red');
     $this->assertEquals($compareData, $stickyData);
     $searchModel = new AAASavedDynamicSearchFormTestModel(new AAA(false));
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $searchModel->setKanbanBoard($kanbanBoard);
     $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule');
     $searchModel->setListAttributesSelector($listAttributesSelector);
     SavedSearchUtil::resolveSearchFormByStickyDataAndModel($stickyData, $searchModel);
     $this->assertEquals('something', $searchModel->savedSearchName);
     $this->assertEquals($savedSearch->id, $searchModel->savedSearchId);
     $this->assertEquals('abcdef', $searchModel->anyMixedAttributes);
     $this->assertEquals('xyz', $searchModel->getAnyMixedAttributesScope());
     $this->assertEquals('1 and 5', $searchModel->dynamicStructure);
     $this->assertEquals(array('a', 'b'), $searchModel->dynamicClauses);
     $this->assertEquals(array('aaaMember', 'aaaMember2'), $searchModel->getListAttributesSelector()->getSelected());
     $this->assertEquals(array('c', 'd'), $searchModel->getKanbanBoard()->getGroupByAttributeVisibleValues());
     $this->assertEquals('red', $searchModel->getKanbanBoard()->getSelectedTheme());
 }
 public function actionClearStickySearch($key)
 {
     StickySearchUtil::clearDataByKey($key);
 }