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
Veloman Yunkan
9bf6d0621f
Introducing 1st real unit test of the server
...
Added a new unit test 'test/server.cpp'. The pre-existing unit test
test/kiwixserve.cpp tests kiwixlib indirectly by running the kiwix-serve
executable which may be built with another version of the library.
Included with this commit is the cpp-httplib C++ HTTP/HTTPS library
(https://github.com/yhirose/cpp-httplib , v0.5.11).
The new file test/httplib.h was copied from
https://raw.githubusercontent.com/yhirose/cpp-httplib/v0.5.11/httplib.h
2020-04-29 15:39:18 +04:00
luddens
0630298fb9
Manager::addBookFromPathAndGetId unit test
2020-04-28 10:56:12 +02:00
Matthieu Gautier
46626a3f98
Add the method get bookByPath in library.
2020-03-06 12:08:05 +01:00
Matthieu Gautier
7e26f3502d
Fix opds dumper/parser.
...
Add missing attributes.
2020-01-30 15:42:54 +01:00
luddens
ff21a095cb
update book even if the members aren't empty
...
remove the conditions to always update the book
2020-01-27 17:50:44 +01:00