Commit Graph

135 Commits

Author SHA1 Message Date
stasoid
d788efb131 sort render tests 2023-02-18 07:53:17 +06:00
stasoid
742aa8e8a0 render_test: increase rendering height for test1.htm 2023-02-18 07:39:54 +06:00
Yuri Kobets
0d91021f28 fix: line height is calculated incorrectly
related to the issue #233
2023-02-17 13:14:19 +03:00
Yuri Kobets
dbc90a7216 fixed: float overlays table #251 2023-02-17 11:18:51 +03:00
Yuri Kobets
4500b2d175 New tests and fixes for inline rendering
* test10.htm - test for issue #247
 * test11.htm - test for issue #249
 * test12.htm - inline text rendering
 * test13.htm - vertical align test
2023-02-16 18:40:17 +03:00
Yuri Kobets
4ab14c9ccb Added new rendering tests
Also all rendering tests are moved to the folder test/render
2023-02-08 23:52:04 +03:00
Yuri Kobets
8820b150ba fixed reference samples for rendering tests
Tables now don't have extra space at the end of text
2023-02-07 02:57:49 +03:00
Yuri Kobets
636ba5163a fixed: line-height calculation for line box. (#243) 2023-01-05 03:55:58 +03:00
stasoid
348bced729 add table-4-td-width.htm test 2022-12-20 19:41:27 +06:00
stasoid
f497c360cb add table-3-width.htm test 2022-12-20 19:31:43 +06:00
stasoid
23109da384 add table-2-width.htm test 2022-12-20 18:48:25 +06:00
stasoid
cb36b5bc66 add line-height inheritance test 2022-12-20 18:27:54 +06:00
stasoid
f0ec9d18f2 cosmetics 2022-12-14 23:41:52 +06:00
stasoid
fcd32a9b7f test_container: implement import_css 2022-12-12 06:03:29 +06:00
stasoid
e8c0e3627a readfile: C -> C++ 2022-12-11 08:31:20 +06:00
stasoid
778a6e2c63 Add render tests
Render tests are .htm files in litehtml/test directory.
Tests starting with "-" are disabled.

Correct rendering is in corresponding .htm.png file.
To generate .png file, run ctest from litehtml/build. The test will fail
and create xxx.htm-FAILED.png file. Rename it to xxx.htm.png

One ASCII raster font with 3 sizes is supported, see litehtml/containers/test/fonts. This should be enough for tests.
Border painting is supported, only solid borders.
Backgrounds, images and list markers are not supported.
2022-12-11 04:20:48 +06:00
stasoid
6ff77337fd remove tests that don't test anything 2022-11-27 13:26:56 +06:00
stasoid
3798ad6cf4 fix cssTest.cpp 2022-11-16 14:54:57 +06:00
stasoid
d1179d5167 more wchar cleanup 2022-11-07 23:21:32 +06:00
stasoid
8c7621034f parse_styles optimization: use string_id for CSS property names
decreases parse_styles time by 37% (750 ms -> 468 ms on Obama wiki on my machine)
2022-11-07 22:11:00 +06:00
stasoid
8927a44515 Remove litehtml::context, replace master.css -> master_css.h and make document::createFromString receive master/user css as strings
closes issue #219
2022-10-30 16:25:56 +06:00
stasoid
a6177d1d5e remove wchar support
closes issue #217
2022-10-21 17:51:29 +06:00
Yuri Kobets
e56cd9b730
Internal refactoring (#212)
* Refactored CSS properties

All CSS related properties are moved into the separate class css_properties.
Getters and setters are removed from classes element and html_tag.
Access to the css_properties rleased via css() [ro] and css_w() [rw] methods

* fix: el_text don't have to copy all css properties from parent

* Refactored rendering code

* Added flex and inline_flex values for display css property

* Implementing box generation

https://www.w3.org/TR/CSS22/visuren.html#box-gen

* Split inlines on block box inside

* Split parsing and rendering trees.

* Fixed some bugs

* Fixed: impossible to click urls on Obama wiki's toc

* Make element::get_placement work again

* Fixed: incorrect rendering table captions

* find_styles_changes function returned to the element class

* set parent correctly during render items split

* fixed urls on https://en.cppreference.com/w/cpp/container/vector

* fixed rendering blocks with width in percents

Example:
https://web.archive.org/web/20110101155107/http://www.unicode.org/
Issue #208

* Fixed placement of blocks with "overflow: hidden" with floating boxes.

* refactoring of rendering block

* Selectors :before and :after returned back with fixed behaviour.

* fixed render_item::is_last_child_inline

* fixed: text inside nested inlines has extra paddings/margins

* fixed documet test
2022-09-14 00:39:44 +03:00
stasoid
9c2c6fffa2 fix test 2022-03-19 09:30:22 +06:00
stasoid
0d8b75f3bd remove xxd
Use pure CMake solution as described here: https://stackoverflow.com/questions/410980/include-a-text-file-in-a-c-program-as-a-char/47801116#47801116
2022-03-17 21:53:01 +06:00
John Poole
463cfc2de1
Merge branch 'master' into url-class 2021-09-25 20:26:05 -04:00
John Poole
5460deec6b
Merge pull request #3 from primatelabs/tstring_view
Add tstring_view, a string reference type
2021-09-25 20:24:38 -04:00
John Poole
8bbf9afed6 Disable test that only fails on GitHub Actions
CSSTest.SelectorParse fails on GitHub Actions but not on Travis or on
any developer systems.  Disable the test until we can determine what's
going on here.
2021-09-25 19:51:12 -04:00
John Poole
527fbe3413 Extend URL path resolution to handle relative paths
This is implemented using several URL path helper functions.  The
functions aren't strictly necessary, but the functions make it easier
to implement and test the resolution functionality.
2021-09-25 13:52:56 -04:00
John Poole
d3c368458d Add a url class
The url class is a URL parser and container class that makes working
with URLs easier.  In particular, the resolve() function makes working
with base URLs and possibly relative URLs easier.

url instances are meant to be immutable.  If users need to modify a
url instance they can do so by creating a new url instance.  See the
resolve() implementation for a non-trivial example of how to build a
new url instance using existing url instances.

Note that the current implementation is inefficient due to each URL
component requiring its own separate memory allocation.  We should
consider re-writing this to use tstring_view once that branch is
merged into master.
2021-09-25 11:58:31 -04:00
John Poole
3147b4fc78 Add codepoint utility functions, tests
Add codepoint utility functions that test whether a codepoint belongs
to a set of codepoints (e.g., the valid codepoints for a URL scheme).
Most of these functions are implemented using a compact lookup table
so should be reasonably fast.

The functions are based on similar functions from the css-parser branch
that were introduced in commit 1698324920.  We'll want to merge these
sets of functions together once the branches are merged.
2021-09-25 11:57:52 -04:00
John Poole
14e2001376 Add tstring_view, a string reference type
tstring_view is a string reference type that provides a view into a
string that is owned elsewhere (e.g., by a std::string object).

tstring_view implements the same interface as std::base_string_view in
the standard library.  When litehtml moves to C++17 consider replacing
the tstring_view implementation with the standard library
implementations (e.g., via a using statement).
2021-09-23 14:56:34 -04:00
John Poole
7501793675 Convert litehtml tests to use GoogleTest
GoogleTest provides a number of nice features (such as autodiscovery)
that make writing and running tests easier and less tedious.  This
patch converts the litehtml tests over to use GoogleTest.  Note that
the conversion is mostly mechanical -- no attempt has been made to
make the tests "idiomatic" GoogleTests.

Most of the CMake changes are based on code from the GoogleTest
documentation, specifically the "Quickstart: Building with CMake"
guide:

  https://google.github.io/googletest/quickstart-cmake.html
2021-08-25 17:51:12 -04:00
Sky Morey
04d8b410c1 added tests, optimized text parsing for <script> 2019-08-18 15:58:26 -05:00
Sky Morey
cd15b54730 Added testing 2019-08-17 20:26:08 -05:00