Added tests

This commit is contained in:
Nicolas Lœuillet 2016-11-18 17:36:19 +01:00
parent 49b042dfdf
commit 32f455c131
6 changed files with 73 additions and 5 deletions

View file

@ -110,8 +110,7 @@ class EntryRepository extends EntityRepository
$qb $qb
->andWhere('e.content LIKE :term OR e.title LIKE :term')->setParameter('term', '%'.$term.'%') ->andWhere('e.content LIKE :term OR e.title LIKE :term')->setParameter('term', '%'.$term.'%')
->leftJoin('e.tags', 't') ->leftJoin('e.tags', 't')
->groupBy('e.id') ->groupBy('e.id');
->having('count(t.id) = 0');
return $qb; return $qb;
} }

View file

@ -162,7 +162,7 @@ entry:
archived: "Articles lus" archived: "Articles lus"
filtered: "Articles filtrés" filtered: "Articles filtrés"
filtered_tags: "Articles filtrés par tags :" filtered_tags: "Articles filtrés par tags :"
filtered_search: 'Articles filtrés par une recherche :' filtered_search: 'Articles filtrés par recherche :'
untagged: "Article sans tag" untagged: "Article sans tag"
list: list:
number_on_the_page: "{0} Il ny a pas darticles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles." number_on_the_page: "{0} Il ny a pas darticles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles."

View file

@ -9,6 +9,8 @@
<span class="black-text">{{ form_errors(form.term) }}</span> <span class="black-text">{{ form_errors(form.term) }}</span>
{% endif %} {% endif %}
<input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
{{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }} {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }}
{{ form_rest(form) }} {{ form_rest(form) }}

View file

@ -33,7 +33,7 @@
<li class="menu new"><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li> <li class="menu new"><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a> <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
<div id="search-form" class="messages info popup-form"> <div id="search-form" class="messages info popup-form">
{{ render(controller("WallabagCoreBundle:Entry:searchForm")) }} {{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }}
</div> </div>
</li> </li>
<li class="menu config"><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li> <li class="menu config"><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>

View file

@ -1018,4 +1018,71 @@ class EntryControllerTest extends WallabagCoreTestCase
$this->assertCount(7, $crawler->filter('div[class=entry]')); $this->assertCount(7, $crawler->filter('div[class=entry]'));
} }
public function testSearch()
{
$this->logInAs('admin');
$client = $this->getClient();
// Search on unread list
$crawler = $client->request('GET', '/unread/list');
$form = $crawler->filter('form[name=search]')->form();
$data = [
'search_entry[term]' => 'title',
];
$crawler = $client->submit($form, $data);
$this->assertCount(4, $crawler->filter('div[class=entry]'));
// Search on starred list
$crawler = $client->request('GET', '/starred/list');
$form = $crawler->filter('form[name=search]')->form();
$data = [
'search_entry[term]' => 'title',
];
$crawler = $client->submit($form, $data);
$this->assertCount(1, $crawler->filter('div[class=entry]'));
// Added new article to test on archive list
$crawler = $client->request('GET', '/new');
$form = $crawler->filter('form[name=entry]')->form();
$data = [
'entry[url]' => $this->url,
];
$client->submit($form, $data);
$content = $client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
->findByUrlAndUserId($this->url, $this->getLoggedInUserId());
$client->request('GET', '/archive/'.$content->getId());
$crawler = $client->request('GET', '/archive/list');
$form = $crawler->filter('form[name=search]')->form();
$data = [
'search_entry[term]' => 'manège',
];
$crawler = $client->submit($form, $data);
$this->assertCount(1, $crawler->filter('div[class=entry]'));
$client->request('GET', '/delete/'.$content->getId());
// test on list of all articles
$crawler = $client->request('GET', '/all/list');
$form = $crawler->filter('form[name=search]')->form();
$data = [
'search_entry[term]' => 'pocket',
];
$crawler = $client->submit($form, $data);
$this->assertCount(0, $crawler->filter('div[class=entry]'));
}
} }