Veloman Yunkan
09233bf4f3
Support for partial queries in catalog search
...
The search text in the catalog query is interpreted as partial by
default, but partial query mode can be disabled in C++. The latter
possibility is not exposed via the /catalog/search kiwix-serve endpoint,
though.
2021-03-17 14:32:03 +01:00
Veloman Yunkan
47c67a4202
LibraryServerTest.catalog_search_with_word_exclusion
2021-03-17 14:32:03 +01:00
Veloman Yunkan
6b600a18eb
LibraryServerTest.catalog_prefix_search
2021-03-17 14:32:03 +01:00
Veloman Yunkan
9e887cadf1
Added some diversity to test/data/library.xml
2021-03-17 14:32:03 +01:00
Veloman Yunkan
a599fb3892
Initial version of Xapian-based catalog search
2021-03-17 14:32:03 +01:00
Veloman Yunkan
b7b0bdbdd8
Both Book::update() methods update the category
2021-03-17 14:10:57 +04:00
Veloman Yunkan
a870e05621
Slight enhancement of BookTest.updateTest
2021-03-17 14:10:57 +04:00
Veloman Yunkan
4abc4f8518
Support for book category attribute in library.xml
2021-03-17 14:10:57 +04:00
Veloman Yunkan
6b2067c236
Reading category element from OPDS stream
2021-03-17 14:10:57 +04:00
Veloman Yunkan
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
Veloman Yunkan
f270724b1f
Testing of a library entry without a category
2021-03-17 14:10:44 +04:00
Veloman Yunkan
58186ffb26
kiwix::Book::getCategory()
2021-03-17 14:09:48 +04:00
Veloman Yunkan
6d43fd065f
Less boilerplate in LibraryServerTest unit-tests
2021-03-17 14:02:27 +04:00
Veloman Yunkan
071d2bedd3
LibraryServerTest.catalog_search_by_text
2021-03-17 14:02:27 +04:00
Veloman Yunkan
0b1740e6c5
LibraryServerTest.catalog_search_by_tag
2021-03-17 14:02:27 +04:00
Veloman Yunkan
9913f748e2
LibraryServerTest.catalog_searchdescription_xml
2021-03-17 14:02:27 +04:00
Veloman Yunkan
c5c40cb189
New unit-test LibraryServerTest.catalog_root_xml
2021-03-17 14:02:27 +04:00
Matthieu Gautier
17bc1a3e1a
[TEST] Do not try to use the bookId if it is wrong.
2021-01-26 17:53:25 +01:00
Matthieu Gautier
1a5a2e7a8e
Adapt kiwix-lib to the new libzim api.
2020-12-02 12:16:48 +01:00
Veloman Yunkan
0f8fe1f63f
Alternative implementation of parseMimetypeCounter()
2020-10-29 14:11:27 +04:00
Matthieu Gautier
ed32e16db2
Use a reference in `test/server.cpp` loop.
...
This is mainly to make the macos CI pass.
2020-10-28 16:08:37 +01:00
Matthieu Gautier
08464f23bc
Better parsing of `M/Counter`
...
Mimetype may contain a parameters.
Then, the mimetype would be something like "text/html;foo=bar;foz=baz"
It will contains a `;` and `=` and it conflicts with the same operators
we use to separate the items in our list.
We have to use a more advanced algorithm which takes the context into
account.
Fix #416
2020-10-28 16:03:18 +01:00
Matthieu Gautier
ef42abea4b
Add some tests of `parseMimetypeCounter`
2020-10-28 14:44:23 +01:00
Veloman Yunkan
18e46969b7
Workaround for configure_file(copy:true)
...
The `copy` keyword argument of `configure_file()` first appears in
meson 0.47. Now performing file copy via python.
2020-08-11 18:17:18 +02:00
Veloman Yunkan
e8cc6e4205
Copying data files via a loop
2020-08-11 18:17:18 +02:00
Veloman Yunkan
5f0bcd2bfa
Renamed wikipedia_en_ray_charles_mini_2020-03.zim
2020-08-11 18:17:18 +02:00
Veloman Yunkan
a3bef76083
example.zim is copied only if gtest is available
2020-08-11 18:17:18 +02:00
MananJethwani
599aaa4c1b
added code for status code 204 for empty return of search.
2020-08-01 01:45:42 +05:30
Veloman Yunkan
3d425f44de
Request header case is ignored
...
Originally reported against case sensitivity of the Range header
(see issue #387 ), this fix applies to all request headers (since
according to RFC 7230 all header fields are case-insensitive, see
https://tools.ietf.org/html/rfc7230#section-3.2 ). However, a
corresponding unit-test was added only for the Range header.
2020-07-30 16:01:51 +02:00
Matthieu Gautier
7ece383004
Add support for samba path on windows.
...
Fix kiwix/kiwix-desktop#429
2020-07-15 11:40:02 +02:00
Matthieu Gautier
4ca9558e30
Fix library test on windows.
2020-07-15 11:40:02 +02:00
Kelson
ee204a9b5e
Increase test timeout to 160s
2020-07-09 10:02:36 +02:00
Matthieu Gautier
157d1664cf
Fix test compilation on bionic
2020-06-09 12:10:05 +02:00
Veloman Yunkan
1cdf830217
Testing of byte-range requests of 0-sized entries
2020-06-03 14:18:22 +04:00
Veloman Yunkan
0b48ab20bb
Enhanced the server unit-test with corner cases
2020-06-03 13:45:31 +04:00
Veloman Yunkan
a9b6d481cc
ServerTest.RangeHasPrecedenceOverCompression
2020-05-26 13:58:20 +04:00
Veloman Yunkan
c2ebdefe8d
Handling of unsatisfiable ranges
2020-05-26 02:11:26 +04:00
Veloman Yunkan
931e95f391
Invalid byte ranges result in 416 responses
2020-05-26 01:40:07 +04:00
Veloman Yunkan
f7571b5b69
Content-Range header is set only for partial content
2020-05-25 17:42:18 +04:00
Veloman Yunkan
52f207eaa6
Support for single-ended byte ranges
2020-05-25 16:37:01 +04:00
Veloman Yunkan
bd2d0bc489
Unit-test for valid single range requests
2020-05-22 17:39:00 +04:00
Matthieu Gautier
d8498fd655
Do not build `server` test on windows.
...
On the appveyor CI, the link of the `server` test fails with
`libmicrohttpd`.
Do not build the test on windows to not break the CI.
2020-05-18 13:13:17 +02:00
Matthieu Gautier
7ec8e33b83
Fix include of `httplib.h` on windows.
...
On windows, `httplib.h` must be included before `windows.h`
We do not include directly `windows.h` in the test but it is included
indirectly by other headers.
Let's include httplib first.
2020-05-18 11:16:25 +02:00
Kelson
94c2ab4395
Add two OPDS related mime-types to compress for HTTP
2020-05-18 08:19:51 +02:00
Kelson
2df74d9755
Fix small compilation error in tests
2020-05-17 16:47:21 +02:00
Veloman Yunkan
54f5dbbd35
Handling of If-None-Match conditional requests
2020-05-14 17:01:22 +04:00
Veloman Yunkan
95a5cde359
ETags are set in the response as needed
...
Also added server-unit tests related to ETags in the response.
2020-05-14 17:01:22 +04:00
Veloman Yunkan
3d08ef43f2
HEAD request is not rejected
...
libmicrohttpd handles HEAD requests by dropping the body of the response
(if any). Hence letting a HEAD request through into the code that
processes GET requests is safe.
Also added server unit-tests related to the handling of HEAD requests.
2020-05-14 17:01:22 +04:00
Veloman Yunkan
9a893a854e
Revert "Server can be started on a random free port"
...
This change failed to build under the following platforms
due to an older version of libmicrohttpd missing support for
the MHD_DAEMON_INFO_BIND_PORT query:
- Linux (native_dyn)
- Linux (win32_dyn)
2020-04-29 15:40:02 +04:00
Veloman Yunkan
b0f65a02f2
Server can be started on a random free port
...
If the server is started with a port value of 0, it binds to a random
free port. The bound port can be obtained with a `getPort()` method.
2020-04-29 15:40:02 +04:00