Multiple tag search was broken from API

First, the setParameter() were done on the same parameter which in fact
just duplicated the condition in the SQL query (like `where t.label =
'test' and t.label = 'test'`.

Changed the parameter doesn't help because the query was then wrong.

Changing the way to match associated tags for an entry and it worked.
This commit is contained in:
Jeremy Benoist
2017-08-03 12:46:20 +02:00
parent 78b36d4dbe
commit 7c04b7396a
5 changed files with 55 additions and 10 deletions

View File

@ -292,6 +292,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
$this->assertSame(1, $content['page']);
$this->assertGreaterThanOrEqual(1, $content['pages']);
$this->assertContains('foo', array_column($content['_embedded']['items'][0]['tags'], 'label'), 'Entries tags should have "foo" tag');
$this->assertContains('bar', array_column($content['_embedded']['items'][0]['tags'], 'label'), 'Entries tags should have "bar" tag');
$this->assertArrayHasKey('_links', $content);
$this->assertArrayHasKey('self', $content['_links']);
$this->assertArrayHasKey('first', $content['_links']);

View File

@ -239,7 +239,7 @@ class ExportControllerTest extends WallabagCoreTestCase
$this->assertSame($contentInDB->getLanguage(), $content[0]['language']);
$this->assertSame($contentInDB->getReadingtime(), $content[0]['reading_time']);
$this->assertSame($contentInDB->getDomainname(), $content[0]['domain_name']);
$this->assertSame(['foo bar', 'baz'], $content[0]['tags']);
$this->assertSame(['baz', 'foo'], $content[0]['tags']);
}
public function testXmlExport()

View File

@ -184,13 +184,13 @@ class RssControllerTest extends WallabagCoreTestCase
$em->flush();
$client = $this->getClient();
$client->request('GET', '/admin/SUPERTOKEN/tags/foo-bar.xml');
$client->request('GET', '/admin/SUPERTOKEN/tags/foo.xml');
$this->assertSame(200, $client->getResponse()->getStatusCode());
$this->validateDom($client->getResponse()->getContent(), 'tag (foo bar)', 'tags/foo-bar');
$this->validateDom($client->getResponse()->getContent(), 'tag (foo)', 'tags/foo');
$client->request('GET', '/admin/SUPERTOKEN/tags/foo-bar.xml?page=3000');
$client->request('GET', '/admin/SUPERTOKEN/tags/foo.xml?page=3000');
$this->assertSame(302, $client->getResponse()->getStatusCode());
}
}