aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'some-bbcode-cleanup' into 'dev'Mario2024-03-011-0/+138
|\ | | | | | | | | Add some beginning tests for bbcode, and a bit of refactoring See merge request hubzilla/core!2110
| * Add some beginning tests for bbcode, and a bit of refactoringHarald Eilertsen2024-03-011-0/+138
| |
* | include/dba: Make Dba driver transaction aware.Harald Eilertsen2024-02-263-32/+257
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduced database transaction support to the Dba driver via the DbaTransaction class. The goal of this is to allow the driver control over the creation and finalization of database transactions. Until now code that has needed transaction support has done so directly by issuing "BEGIN", "ROLLBACK" and "COMMIT" commands to the underlying database directly. This has several disadvantages: - We do have no control or knowledge of whether any transactions being active. - Since transactions can not be nested, we run the risk of unrelated code trying to create a transaction when one is already active. - Code using transactions are not testable, as the test runner wraps all tests within a transaction to begin with. This patch should eliminate all these problems. A transaction is started by instantiating the DbaTransaction class: $my_transaction = new \DbaTransaction(); The transaction will automatically be _rolled back_ if it has not been committed before the instance is destroyed. (When the variable holding it goes out of scope, i.e when the containing function returns.) A transaction is committed like this: $my_transaction->commit(); This will immediately commit the changes in the transaction, and the transaction will be marked as committed, so it will not be attempted to be rolled back on destruction. I have chosen to "ignore" the problem of nested transactions by having the DbaTransaction class _not_ initiate a new transaction if one is already active. This also makes the rollback and commit actions of the DbaTransaction class into no-ops. An alternative would be to simulate nested transactions by using save points if a transaction is already active. However, I'm unsure about wether there's any safe way to avoid all potential pitfalls when doing that. In any case, nested transactions should preferably be avoided, and afaict we don't rely on that in any of the existing code. The reason we need to support it in some way is that it's needed for testing where the code under test is creating a transaction on it's own. (Since each test is run within a db transaction to begin with.) Also, I have taken the liberty to assume a PDO based db driver for this stuff. I don't think that's going to be a problem, as that's the only thing supported by the rest of the code in any case.
* update testMario2024-02-201-1/+1
|
* Add test for a paragraph with a mention and some textMario2024-02-131-0/+4
|
* Support code blocks with language in markdown and html.Harald Eilertsen2024-02-081-0/+4
|
* Fix: Preserve hard linebreaks from markdown and htmlHarald Eilertsen2024-02-071-0/+8
|
* Fix: Keep indentation in html and md code blocks.Harald Eilertsen2024-02-072-0/+12
| | | | | | | Moves the logic for unwrapping broken lines in html (and Markdown) to the node processing, instead of doing it over the full html content. This allows us to skip if for code blocks (aka `<code>` elements within `<pre>` elements).
* Fix convert code blocs from markdown/html to bbcodeHarald Eilertsen2024-02-062-0/+12
|
* Fix image with alt text for html/md to bbcodeHarald Eilertsen2024-02-062-0/+50
|
* Add some tests for markdown to bbcode conversion.Harald Eilertsen2024-02-061-0/+37
|
* Clean up markdowntest and fix bb to markdown test.Harald Eilertsen2024-02-061-41/+25
|
* Merge branch 'dont-include-db-updates-in-test-coverage' into 'dev'Mario2024-01-191-0/+3
|\ | | | | | | | | Don't include db updates in test coverage. See merge request hubzilla/core!2090
| * Don't include db updates in test coverage.Harald Eilertsen2024-01-161-0/+3
| | | | | | | | We're not likely to add tests for these in any case.
* | Improve the validate_email functionHarald Eilertsen2024-01-151-25/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The validate_email function relied on doing an actual domain lookup (on supported platforms) to validate the domain of the email address. This does not work too well in testing environments where we may not want to spam the DNS system, if it at all is available. Apart from the the function did very little to actually verify that it was a valid email address. This patch tries to change that by usng a somewhat stricted regex based validation. While this may not be perfect, it should be good enough in the vast majority of cases. For platforms where no validation was performed with the old version, it will at least be an improvement. Also, it allows testing without having an external network connection. Also clarify the doc comment, that it does not actually try to resolve the email address, just the domain.
* | tests: Enable debug logging during testsHarald Eilertsen2024-01-152-0/+14
| | | | | | | | | | | | The debug log will be stored in the test/results directory, and archived as part of the artifacts of the CI run. This should make it easier to get some debugging info out from the CI runs if they fail.
* | tests: Remove id from db fixtures.Harald Eilertsen2024-01-151-2/+0
|/ | | | | | | | | | | | | | | | It seems that PostgreSQL will not update the autoincrement index of the table when inserting rows with an id set. Later inserts without an id set will then fail, because they get assigned an id that already exists. MySQL seems to handle this just fine. Why the id column was added in the first place, one may wonder, but that's how it were. In any case, this broke the PostgreSQL tests in the gitlab CI environment. (While it mysteriously worked in my local ddev environment.) Anyways, the id column is not needed, and things work better without them.
* tests: Add tests for check_account_emailHarald Eilertsen2024-01-081-0/+22
|
* tests: Set app config in a known state for each testHarald Eilertsen2024-01-081-1/+4
|
* tests: Add config fixtures.Harald Eilertsen2024-01-081-0/+13
| | | | | | Adds fixtures for the config table: - Disables dns checking globally for the tests. - Adds a few disallowed email domains and addresses.
* tests: Clean up unused debug stuff from UnitTestCaseHarald Eilertsen2024-01-081-5/+0
|
* Remove unused acceptance test stuff from source tree.Harald Eilertsen2024-01-075-114/+0
|
* Remove behat as dev dependency.Harald Eilertsen2024-01-071-2/+1
| | | | | | | | | As the Symphony\Yaml stuff disappeared with behat, we need another way to load read the yaml files with database fixtures for the integration tests. As the php yaml extension is not distributed with PHP by default, this creates it as another dev dependency!
* Merge branch 'tests/fix-db-and-ci-integration' into 'dev'Mario2024-01-068-59/+247
|\ | | | | | | | | tests: Integrate the DB in "unit" tests. See merge request hubzilla/core!2081
| * tests: Integrate the DB in "unit" tests.Harald Eilertsen2024-01-068-59/+247
| |
* | port test for JcsEddsa2022 from streamsMario2024-01-061-0/+174
|/
* Fix deserialization of config values broken by 69266cd6.Harald Eilertsen2023-12-171-0/+61
| | | | | | | | | | | | | | | This should fix issue #1828. This patch makes it explicit that we store arrays in the config as json encoded arrays, while we allow both json encoded and PHP serialized arrays to be deserialized correctly. Unless it's a brand new install, the existing data in the database will be PHP serialized. I've also added a hardening measure in case we fall back to PHP unserialize, making sure we're not vulnerable to a PHP Object Injection attack. This means that deserializing arrays containing PHP objects will no longer work, but afaict we never do that anyways, so I don't think that should break anything.
* Zotlabs: Improve type safety for AccessList class.Harald Eilertsen2023-07-181-10/+26
| | | | | | | | | | | | | Add type annotations for constructor and set* methods, and throw an exception if the passed in arrays are missing required keys. This means that both invalid input types and missing keys will throw and exception rather than just die with a runtime error. There's not checks to verify that the contents of the required array keys are valid or make sense, though. They are just assigned, and returned as is by the get method when requested. Also, the set_from_array method is not well tested at the moment.
* tests: AccessListTest expand is_private test.Harald Eilertsen2023-07-121-1/+21
|
* tests: AccessListTest move type annotation to codeHarald Eilertsen2023-07-121-3/+2
| | | | | This cleans up the doc comment. Should probably try to do this everywhere.
* tests: AccessListTests nitpicking on doc comment.Harald Eilertsen2023-07-121-1/+3
|
* tests: AccessListTest collect defaults in one testcase.Harald Eilertsen2023-07-121-10/+8
| | | | Just no need to have them spread around in various other tests cases.
* test: Enable and cleanup GetTagsTest.Harald Eilertsen2023-07-121-206/+170
| | | | | | | | | | | | These tests actually tests both the get_tags() function, and the handle_tags() function. The latter don't work, and should probably be split into it's own test cases. There's also some stubs here that we may want to deal with in another way. Also removed meaningless "test" of intval() builtin function. It behaves as documented, no need for us to test it.
* tests: Cleanup ContainsAttribute test.Harald Eilertsen2023-07-121-10/+7
| | | | Mostly cosmetic to satisfy phpcs + remove explicit require.
* tests: Cleanup Autoname test.Harald Eilertsen2023-07-121-10/+7
| | | | Not sure if this test is actually useful, but leave it for now.
* tests: Don't explicitly require CUT in AntiXSSTest.Harald Eilertsen2023-07-121-2/+0
| | | | Rely on PHPUnit config to load the app and the code under test.
* unit-tests: There's no need to test builtin func hex2binHarald Eilertsen2023-07-121-10/+0
|
* unit tests: Cosmetic fixes in AntiXSSTest.phpHarald Eilertsen2023-07-121-25/+29
| | | | | | - Start comments with capital letter - Fix indentation - Add missing doc comments
* Unit tests: Update Markdown tests to reflect that it works.Harald Eilertsen2023-06-141-2/+2
|
* Unit tests: Book Hubzilla to make app env available in tests.Harald Eilertsen2023-06-141-0/+6
| | | | | Not quite unit test clean, but a somewhat pragmatic approach to make the tests pass as is.
* Add function is_local_url() to check if url is local.Harald Eilertsen2022-03-201-0/+33
|
* Add helper to escape URLs.Harald Eilertsen2022-03-201-0/+20
| | | | | | | | | The escaping makes the URL safe for display and for use in HTML element attributes (such as href="..." etc), but does not guarantee that the URL itself is valid after conversion. This should be good enough for mitigating XSS issues caused by injecting html or javascript into a URL. Also probably good enough for _most_ normal URLs, but there may be devils hidden in the details somewhere.
* comment out failing tests for nowMario2022-02-111-0/+5
|
* language testMario2022-02-111-5/+0
|
* merge branch perms_ng into devMario2021-12-153-33/+14
|
* a possible fix for the nested list testMario2021-09-291-2/+2
|
* fix testMario2021-06-051-1/+1
|
* fix testMario2021-05-271-0/+2
|
* get devHilmar R2021-03-016-3/+96
|
* coverage configMario2020-11-261-1/+1
|