Skip to content
Snippets Groups Projects
Commit 5f2bdd34 authored by Patrick Barroca's avatar Patrick Barroca
Browse files

rel #24 : external agendas admin edit and deletion

parent b7d0b8d1
Branches
Tags
2 merge requests!1677Hotline master,!1672Dev#24 storytime import des articles au format ical
......@@ -29,7 +29,8 @@ class Admin_ExternalAgendasController extends ZendAfi_Controller_Action {
'order' => 'label'],
'actions' => ['index' => ['title' => $this->_('Gestion des agendas externes')],
'add' => ['title' => $this->_('Ajouter un nouvel agenda')]],
'add' => ['title' => $this->_('Ajouter un nouvel agenda')],
'edit' => ['title' => $this->_('Modifier un agenda')]],
'messages' => ['successful_add' => $this->_('Agenda %s ajouté'),
'successful_save' => $this->_('Agenda %s modifié'),
......
<?php echo $this->renderForm($this->form); ?>
......@@ -33,6 +33,15 @@ abstract class ExternalAgendasAdminTestCase extends Admin_AbstractControllerTest
'libelle' => 'Events',
'bib' => $this->valleiry]);
$this->others_category = $this->fixture('Class_ArticleCategorie',
['id' => 2,
'libelle' => 'Others',
'bib' => $this->valleiry]);
$this->fixture('Class_Lieu',
['id' => 22,
'libelle' => 'Wonderful location']);
$this->fixture('Class_ExternalAgenda',
['id' => 124,
'label' => 'Personal Agenda',
......@@ -259,3 +268,153 @@ class ExternalAgendasAdminAddWithWorkflowValidPostTest extends ExternalAgendasAd
$this->assertEquals(Class_Article::STATUS_VALIDATED, $this->agenda->getStatus());
}
}
class ExternalAgendasAdminEditWithWorkflowTest extends ExternalAgendasAdminTestCase {
public function setUp() {
parent::setUp();
Class_AdminVar::set('WORKFLOW', 1);
$this->fixture('Class_ExternalAgenda',
['id' => 34,
'label' => 'Extra Agenda',
'url' => 'http://external.agenda.com/export?type=ics',
'cat_id' => 1,
'id_lieu' => 0,
'status' => Class_Article::STATUS_VALIDATED]);
$this->dispatch('/admin/external-agendas/edit/id/34', true);
}
/** @test */
public function titleShouldBeAjouterUnNouvelAgenda() {
$this->assertXPathContentContains('//h1', 'Modifier un agenda');
}
/** @test */
public function formShouldContainsInputForLabel() {
$this->assertXPath('//form//input[@name="label"][@value="Extra Agenda"]');
}
/** @test */
public function formShouldContainsInputForUrl() {
$this->assertXPath('//form//input[@name="url"][@type="url"][@value="http://external.agenda.com/export?type=ics"]');
}
/** @test */
public function formShouldContainsRootCategorySelector() {
$this->assertXPathContentContains('//form//select[@name="cat_id"]/optgroup[@label="Valleiry"]/option[@value="1"][@selected="selected"]',
'Events');
}
/** @test */
public function categorySelectorShouldContainsNoneOption() {
$this->assertXPathContentContains('//select[@name="cat_id"]//option[@value="0"]',
'Aucune');
}
/** @test */
public function formShouldContainsLocationSelector() {
$this->assertXPathContentContains('//select[@name="id_lieu"]/option[@value="0"][@selected="selected"]', 'Aucun');
}
/** @test */
public function formShouldContainsWorkflowOptions() {
$this->assertXPath('//input[@type="radio"][@name="status"][@value="' . Class_Article::STATUS_VALIDATED . '"][@checked="checked"]');
}
}
class ExternalAgendasAdminEditWithWorkflowPostTest extends ExternalAgendasAdminTestCase {
protected $agenda;
public function setUp() {
parent::setUp();
Class_AdminVar::set('WORKFLOW', 1);
$this->fixture('Class_ExternalAgenda',
['id' => 34,
'label' => 'Extra Agenda',
'url' => 'http://external.agenda.com/export?type=ics',
'cat_id' => 1,
'id_lieu' => 0,
'status' => Class_Article::STATUS_VALIDATED]);
$this->postDispatch('/admin/external-agendas/edit/id/34',
['label' => 'Wonderful Agenda',
'url' => 'http://external.agenda.com/export?type=ics&sort=asc',
'cat_id' => 2,
'id_lieu' => 22,
'status' => Class_Article::STATUS_DRAFT]);
$this->agenda = Class_ExternalAgenda::find(34);
}
/** @test */
public function agendaLabelShouldBecomeWonderfulAgenda() {
$this->assertEquals('Wonderful Agenda', $this->agenda->getLabel());
}
/** @test */
public function agendaUrlShouldBecomeExternalDotAgendaDotCom() {
$this->assertEquals('http://external.agenda.com/export?type=ics&sort=asc', $this->agenda->getUrl());
}
/** @test */
public function agendaCategorieShouldBecomeOthers() {
$this->assertEquals('Others', $this->agenda->getCategory()->getLibelle());
}
/** @test */
public function agendaLocationShouldBecomeWonderful() {
$this->assertEquals('Wonderful location', $this->agenda->getLocation()->getLibelle());
}
/** @test */
public function agendaStatusShouldBecomeDraft() {
$this->assertEquals(Class_Article::STATUS_DRAFT, $this->agenda->getStatus());
}
}
class ExternalAgendasAdminDeleteTest extends ExternalAgendasAdminTestCase {
public function setUp() {
parent::setUp();
Class_AdminVar::set('WORKFLOW', 1);
$this->fixture('Class_ExternalAgenda',
['id' => 34,
'label' => 'Extra Agenda',
'url' => 'http://external.agenda.com/export?type=ics',
'cat_id' => 1,
'id_lieu' => 0,
'status' => Class_Article::STATUS_VALIDATED]);
$this->dispatch('/admin/external-agendas/delete/id/34', true);
}
/** @test */
public function extraAgendaShouldBeDeleted() {
$this->assertNull(Class_ExternalAgenda::find(34));
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment