Skip to content

RbmarkTest

Unit/integration tests for the Rbmark module.

SPDX-FileCopyrightText: 2024 Hubzilla Community

SPDX-License-Identifier: MIT

Methods

test_unauthenticated_get_request_return_login_form

public test_unauthenticated_get_request_return_login_form(): void

test_authenticated_get_request_returns_save_bookmark_form

public test_authenticated_get_request_returns_save_bookmark_form(): void

test_that_params_are_escaped_in_save_bookmark_form

public test_that_params_are_escaped_in_save_bookmark_form(): void

test_that_existing_bookmark_folders_are_listed

public test_that_existing_bookmark_folders_are_listed(): void

Inherited methods

setup_test_db

Connect to the test db, load fixtures and global config.

protected setup_test_db(): void

This function is executed before every test.

The transaction is rolled back in the cleanup_test_db() function that's executed after every test.


init_app

Initialize the global App properties.

protected init_app(): void

cleanup_test_db

Roll back test database to it's original state, cleaning up any changes from the test.

protected cleanup_test_db(): void

This function is executes after evert tests.


connect_to_test_db

Connect to the test database,

protected connect_to_test_db(): void

By default it will connect to a MySQL database with the following settings:

  • HZ_TEST_DB_HOST: db
  • HZ_TEST_DB_PORT: default
  • HZ_TEST_DB_USER: test_user
  • HZ_TEST_DB_PASS: hubzilla
  • HZ_TEST_DB_DATABASE: hubzilla_test_db
  • HZ_TEST_DB_TYPE: mysql (can also be "postgres")
  • HZ_TEST_DB_CHARSET: UTF8

All of these settings can be overridden by the test runner by setting ENV vars named as above with the values you want to override.


dbtype

Return the database type from a string.

private static dbtype(string $type): \Zotlabs\Tests\Unit\The
  • This method is static.

Parameters:

Parameter Type Description
$type string The database type, can be either mysql or postgres.

Return Value:

database type constant matching the passed in type, or DBTYPE_MYSQL if $type is empty or invalid.


loadFixtures

Load database fixtures from the fixture path.

private loadFixtures(): void

loadFixture

Load database fixtures from a specific file.

private loadFixture(string $file): void

The file must be a yaml file named the same as the table in the database it should populate.

The file also need to have a root key with the same name as the table. Under which it contains an array of rows that should be inserted into the db table.

Parameters:

Parameter Type Description
$file string The path and filename of the fixture to load.
The path name is relative to the current working
directory of the process, which should normally
be the Hubzilla root directory.

cleanup_stubs

public cleanup_stubs(): void

do_request

protected do_request(string $method, string $uri, array $query = [], array $params = []): void

Parameters:

Parameter Type Description
$method string
$uri string
$query array
$params array

get

Emulate a GET request.

protected get(string $uri, array $query = []): void

Parameters:

Parameter Type Description
$uri string The URI to request. Typically this will be the module
name, followed by any req args separated by slashes.
$query array Assciative array of query args, with the parameters
as keys.

post

Emulate a POST request.

protected post(string $uri, array $query = [], array $params = []): void

Parameters:

Parameter Type Description
$uri string The URI to request. Typically this will be the module
name, followed by any req args separated by slashes.
$query array Associative array of query args, with the parameters
as keys.
$params array Associative array of POST params, with the param names
as keys.

assertPageContains

Helper to simplify asserting contents in the rendered page.

protected assertPageContains(string $needle): void

Parameters:

Parameter Type Description
$needle string The expected string to find.

stub_killme

Stub out the killme function.

protected stub_killme(): void

Useful for testing modules that call this function directly.

Instead of calling exit, the stub will throw a KillmeException, that can be caught by the test code to regain control after request processing is terminated.

Example:

public function test_something(): void {
    $this->stub_killme();

    try {
        killme();
    } catch (KillmeException $e) {
        $this->assertSomething(...);
    }
}

It's also possible to use the builting PHPUnit expecations to verify that the function was called.

public function test_something(): void {
    $this->stub_killme();
    $this->expectException(KillmeException::class);

    killme();
}

This is useful if you only want to check that processing was terminated with the killme() function.

Throws:


stub_goaway

Stub out the goaway function.

protected stub_goaway(): void

Useful for testing modules that calls this function directly.

Instead of calling killme(), the stub will throw a RedirectException with the target URL as the exception message. This allows the test code to regain control after request processing is terminated.

Example:

public function test_redirect(): void {
    $this->stub_goaway();

    try {
        goaway('https://example.com/some_uri');
    } catch (RedirectException $e) {
        $this->assertEquals('https://example.com/some_uri', $e->getMessage());
        $this->assertSomethingElse(...);
    }
}

It's also possible to use the builting PHPUnit expecations to verify that the function was called.

public function test_something(): void {
    $this->stub_goaway();
    $this->expectException(RedirectException::class);
    $this->expectExceptionMessage('https://example.com/some_uri');

    goaway('https://example.com/some_uri');
}

This is useful if you only want to check that the request was redirected.

Throws:


expectRedirectTo

Shorthand function to expect a redirect to a given URL.

protected expectRedirectTo(string $destination): void

Example:

public function test_redirect(): void { $this->expectRedirectTo('https://example.com/some_uri'); goaway('https://example.com/some_uri'); }

Parameters:

Parameter Type Description
$destination string


Automatically generated on 2025-03-18