public function itReturnsJson() { $artifact_id = 55; $artifact_title = 'bla'; $cross_ref = 'task #22'; $edit_url = 'edit'; $accent_color = 'rgb(12,12,12)'; $swimline_id = 215; $drop_into = array('5', '7'); $artifact = aMockArtifact()->withId($artifact_id)->build(); $card_fields = mock('Cardwall_CardFields'); $field1 = mock('Tracker_FormElement_Field_Float'); $field2 = mock('Tracker_FormElement_Field_Selectbox'); $field3 = mock('Tracker_FormElement_Field_Selectbox'); stub($field1)->getJsonValue()->returns(5.1); stub($field2)->getJsonValue()->returns(array(101, 201)); stub($field3)->getJsonValue()->returns(236); stub($field1)->fetchCardValue()->returns("5.1"); stub($field2)->fetchCardValue()->returns('<a href'); stub($field3)->fetchCardValue()->returns('<span>Decorator</span>'); stub($field1)->getName()->returns(Tracker::REMAINING_EFFORT_FIELD_NAME); stub($field2)->getName()->returns(Tracker::ASSIGNED_TO_FIELD_NAME); stub($field3)->getName()->returns(Tracker::IMPEDIMENT_FIELD_NAME); $card_presenter = mock('Cardwall_CardPresenter'); stub($card_presenter)->getTitle()->returns($artifact_title); stub($card_presenter)->getXRef()->returns($cross_ref); stub($card_presenter)->getEditUrl()->returns($edit_url); stub($card_presenter)->getAccentColor()->returns($accent_color); stub($card_presenter)->getSwimlineId()->returns($swimline_id); $card_in_cell_presenter = mock('Cardwall_CardInCellPresenter'); stub($card_in_cell_presenter)->getCardPresenter()->returns($card_presenter); stub($card_in_cell_presenter)->getDropIntoIds()->returns($drop_into); stub($card_in_cell_presenter)->getArtifact()->returns($artifact); stub($card_fields)->getFields()->returns(array($field1, $field2, $field3)); $single_card = new Cardwall_SingleCard($card_in_cell_presenter, $card_fields, mock('Cardwall_UserPreferences_UserPreferencesDisplayUser'), 1111, mock('Cardwall_OnTop_Config_TrackerMapping')); $card_controller = new Cardwall_CardController(aRequest()->withUser(mock('PFUser'))->build(), $single_card); $expected = array($artifact_id => array('title' => $artifact_title, 'xref' => $cross_ref, 'edit_url' => $edit_url, 'accent_color' => $accent_color, 'column_id' => 1111, 'drop_into' => $drop_into, 'fields' => array('remaining_effort' => 5.1, 'assigned_to' => array(101, 201), 'impediment' => 236), 'html_fields' => array('remaining_effort' => '5.1', 'assigned_to' => '<a href', 'impediment' => '<span>Decorator</span>'))); expect($GLOBALS['Response'])->sendJSON($expected)->once(); $card_controller->getCard(); }
public function process(Codendi_Request $request) { switch ($request->get('action')) { case 'toggle_user_autostack_column': $display_preferences_controller = new Cardwall_UserPreferences_UserPreferencesController($request); $display_preferences_controller->toggleAutostack(); break; case 'toggle_user_display_avatar': $display_preferences_controller = new Cardwall_UserPreferences_UserPreferencesController($request); $display_preferences_controller->toggleUserDisplay(); break; case 'get-card': try { $single_card_builder = new Cardwall_SingleCardBuilder($this->getConfigFactory(), new Cardwall_CardFields(UserManager::instance(), Tracker_FormElementFactory::instance()), Tracker_ArtifactFactory::instance(), PlanningFactory::build()); $controller = new Cardwall_CardController($request, $single_card_builder->getSingleCard($request->getCurrentUser(), $request->getValidated('id', 'uint', 0), $request->getValidated('planning_id', 'uint', 0))); $controller->getCard(); } catch (Exception $exception) { $GLOBALS['Response']->addFeedback(Feedback::ERROR, $exception->getMessage()); $GLOBALS['Response']->sendStatusCode(400); } break; default: echo 'Hello !'; } }