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
47c67a4202
LibraryServerTest.catalog_search_with_word_exclusion
2021-03-17 14:32:03 +01:00
6b600a18eb
LibraryServerTest.catalog_prefix_search
2021-03-17 14:32:03 +01:00
9e887cadf1
Added some diversity to test/data/library.xml
2021-03-17 14:32:03 +01:00
a599fb3892
Initial version of Xapian-based catalog search
2021-03-17 14:32:03 +01:00
b7b0bdbdd8
Both Book::update() methods update the category
2021-03-17 14:10:57 +04:00
a870e05621
Slight enhancement of BookTest.updateTest
2021-03-17 14:10:57 +04:00
4abc4f8518
Support for book category attribute in library.xml
2021-03-17 14:10:57 +04:00
6b2067c236
Reading category element from OPDS stream
2021-03-17 14:10:57 +04:00
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
f270724b1f
Testing of a library entry without a category
2021-03-17 14:10:44 +04:00
58186ffb26
kiwix::Book::getCategory()
2021-03-17 14:09:48 +04:00
6d43fd065f
Less boilerplate in LibraryServerTest unit-tests
2021-03-17 14:02:27 +04:00
071d2bedd3
LibraryServerTest.catalog_search_by_text
2021-03-17 14:02:27 +04:00
0b1740e6c5
LibraryServerTest.catalog_search_by_tag
2021-03-17 14:02:27 +04:00
9913f748e2
LibraryServerTest.catalog_searchdescription_xml
2021-03-17 14:02:27 +04:00
c5c40cb189
New unit-test LibraryServerTest.catalog_root_xml
2021-03-17 14:02:27 +04:00
17bc1a3e1a
[TEST] Do not try to use the bookId if it is wrong.
2021-01-26 17:53:25 +01:00
1a5a2e7a8e
Adapt kiwix-lib to the new libzim api.
2020-12-02 12:16:48 +01:00
0f8fe1f63f
Alternative implementation of parseMimetypeCounter()
2020-10-29 14:11:27 +04:00
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
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
ef42abea4b
Add some tests of parseMimetypeCounter
2020-10-28 14:44:23 +01:00
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
e8cc6e4205
Copying data files via a loop
2020-08-11 18:17:18 +02:00
5f0bcd2bfa
Renamed wikipedia_en_ray_charles_mini_2020-03.zim
2020-08-11 18:17:18 +02:00
a3bef76083
example.zim is copied only if gtest is available
2020-08-11 18:17:18 +02:00
599aaa4c1b
added code for status code 204 for empty return of search.
2020-08-01 01:45:42 +05:30
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
7ece383004
Add support for samba path on windows.
...
Fix kiwix/kiwix-desktop#429
2020-07-15 11:40:02 +02:00
4ca9558e30
Fix library test on windows.
2020-07-15 11:40:02 +02:00
ee204a9b5e
Increase test timeout to 160s
2020-07-09 10:02:36 +02:00
157d1664cf
Fix test compilation on bionic
2020-06-09 12:10:05 +02:00
1cdf830217
Testing of byte-range requests of 0-sized entries
2020-06-03 14:18:22 +04:00
0b48ab20bb
Enhanced the server unit-test with corner cases
2020-06-03 13:45:31 +04:00
a9b6d481cc
ServerTest.RangeHasPrecedenceOverCompression
2020-05-26 13:58:20 +04:00
c2ebdefe8d
Handling of unsatisfiable ranges
2020-05-26 02:11:26 +04:00
931e95f391
Invalid byte ranges result in 416 responses
2020-05-26 01:40:07 +04:00
f7571b5b69
Content-Range header is set only for partial content
2020-05-25 17:42:18 +04:00
52f207eaa6
Support for single-ended byte ranges
2020-05-25 16:37:01 +04:00
bd2d0bc489
Unit-test for valid single range requests
2020-05-22 17:39:00 +04:00
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
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
94c2ab4395
Add two OPDS related mime-types to compress for HTTP
2020-05-18 08:19:51 +02:00
2df74d9755
Fix small compilation error in tests
2020-05-17 16:47:21 +02:00
54f5dbbd35
Handling of If-None-Match conditional requests
2020-05-14 17:01:22 +04:00
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
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
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
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