From 7c28a40c3e55ea1d8f248639e578cb41ae17e49f Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Thu, 15 Feb 2018 00:01:11 +0100 Subject: :white_check_mark: Unit Test for HTTPSig. --- tests/unit/Web/HttpSigTest.php | 125 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 tests/unit/Web/HttpSigTest.php (limited to 'tests') diff --git a/tests/unit/Web/HttpSigTest.php b/tests/unit/Web/HttpSigTest.php new file mode 100644 index 000000000..18f2ce92b --- /dev/null +++ b/tests/unit/Web/HttpSigTest.php @@ -0,0 +1,125 @@ +assertSame( + $digest, + HTTPSig::generate_digest($text, false) + ); + } + public function generate_digestProvider() { + return [ + 'empty body text' => [ + '', + '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' + ], + 'sample body text' => [ + 'body text', + '2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI=' + ], + 'NULL body text' => [ + null, + '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' + ], + ]; + } + + function testGeneratedDigestsOfDifferentTextShouldNotBeEqual() { + $this->assertNotSame( + HTTPSig::generate_digest('text1', false), + HTTPSig::generate_digest('text2', false) + ); + } + + /** + * Process separation needed for header() check. + * @runInSeparateProcess + */ + function testGenerate_digestSendsHttpHeader() { + $ret = HTTPSig::generate_digest('body text', true); + + $this->assertSame('2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI=', $ret); + $this->assertContains( + 'Digest: SHA-256=2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI=', + xdebug_get_headers(), + 'HTTP header Digest does not match' + ); + } + + /** + * @uses ::crypto_unencapsulate + */ + function testDecrypt_sigheader() { + $header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"'; + $result = [ + 'iv' => 'value_iv', + 'key' => 'value_key', + 'alg' => 'value_alg', + 'data' => 'value_data' + ]; + + $this->assertSame($result, HTTPSig::decrypt_sigheader($header, 'site private key')); + } + /** + * @uses ::crypto_unencapsulate + */ + function testDecrypt_sigheaderUseSitePrivateKey() { + // Create a stub for global function get_config() with expectation + $t = $this->getFunctionMock('Zotlabs\Web', 'get_config'); + $t->expects($this->once())->willReturn('system.prvkey'); + + $header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"'; + $result = [ + 'iv' => 'value_iv', + 'key' => 'value_key', + 'alg' => 'value_alg', + 'data' => 'value_data' + ]; + + $this->assertSame($result, HTTPSig::decrypt_sigheader($header)); + } + function testDecrypt_sigheaderIncompleteHeaderShouldReturnEmptyString() { + $header = 'Header: iv="value_iv" key="value_key"'; + + $this->assertEmpty(HTTPSig::decrypt_sigheader($header, 'site private key')); + } +} -- cgit v1.2.3 From a732b2bca1d10fe374322fd4a8996fef6e23c11a Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Sat, 17 Mar 2018 21:47:02 +0100 Subject: :construction_worker:Extend Travis, add PostgreSQL10. Add PostgreSQL10 to TravisCI through Docker container. Use PHP7.2 instead of PHP7.1 as default test environment. Update to current stable MariaDB 10.2 from stable (GA) 10.1. --- tests/travis/prepare_pgsql.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/travis/prepare_pgsql.sh b/tests/travis/prepare_pgsql.sh index 0175b9858..c6b12e4d6 100755 --- a/tests/travis/prepare_pgsql.sh +++ b/tests/travis/prepare_pgsql.sh @@ -27,14 +27,19 @@ set -e echo "Preparing for PostgreSQL ..." +if [[ "$POSTGRESQL_VERSION" == "10" ]]; then + echo "Using PostgreSQL in Docker container, need to use TCP" + export PROTO="-h localhost" +fi + # Print out some PostgreSQL information psql --version # Why does this hang further execution of the job? -psql -U postgres -c "SELECT VERSION();" +psql $PROTO -U postgres -c "SELECT VERSION();" # Create Hubzilla database -psql -U postgres -c "DROP DATABASE IF EXISTS travis_hubzilla;" -psql -U postgres -v ON_ERROR_STOP=1 <<-EOSQL +psql $PROTO -U postgres -c "DROP DATABASE IF EXISTS travis_hubzilla;" +psql $PROTO -U postgres -v ON_ERROR_STOP=1 <<-EOSQL CREATE USER travis_hz WITH PASSWORD 'hubzilla'; CREATE DATABASE travis_hubzilla; ALTER DATABASE travis_hubzilla OWNER TO travis_hz; @@ -42,8 +47,8 @@ psql -U postgres -v ON_ERROR_STOP=1 <<-EOSQL EOSQL # Import table structure -psql -U travis_hz -v ON_ERROR_STOP=1 travis_hubzilla < ./install/schema_postgres.sql +psql $PROTO -U travis_hz -v ON_ERROR_STOP=1 travis_hubzilla < ./install/schema_postgres.sql # Show databases and tables -psql -U postgres -l -psql -U postgres -d travis_hubzilla -c "\dt;" +psql $PROTO -U postgres -l +psql $PROTO -U postgres -d travis_hubzilla -c "\dt;" -- cgit v1.2.3 From eec4d9b5ad2ad3fbc4d5c5651fcccdc81b248af9 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Fri, 23 Mar 2018 10:16:06 +0100 Subject: an attemot to fix the PermissionRolesTest --- tests/unit/Access/PermissionRolesTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/unit/Access/PermissionRolesTest.php b/tests/unit/Access/PermissionRolesTest.php index 5e64e773a..f2636da62 100644 --- a/tests/unit/Access/PermissionRolesTest.php +++ b/tests/unit/Access/PermissionRolesTest.php @@ -62,6 +62,7 @@ class PermissionRolesTest extends UnitTestCase { $this->assertEquals($roles, $r->roles()); $socialNetworking = [ + 'social_party' => 'Social - Party', 'social' => 'Social - Mostly Public', 'social_restricted' => 'Social - Restricted', 'social_private' => 'Social - Private' @@ -97,4 +98,4 @@ class PermissionRolesTest extends UnitTestCase { $this->assertEquals(['role' => 'nonexistent'], $rp_nonexistent); } -} \ No newline at end of file +} -- cgit v1.2.3 From 95059f2bfd2c7dbffe4dba2df277f7356fb124a1 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sat, 21 Apr 2018 00:37:04 -0700 Subject: fix permissionlimitstest after recent changes --- tests/unit/Access/PermissionLimitsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/unit/Access/PermissionLimitsTest.php b/tests/unit/Access/PermissionLimitsTest.php index 58595111a..57ad42a19 100644 --- a/tests/unit/Access/PermissionLimitsTest.php +++ b/tests/unit/Access/PermissionLimitsTest.php @@ -66,7 +66,7 @@ class PermissionLimitsTest extends UnitTestCase { $this->assertEquals(PERMS_SPECIFIC, $stdlimits['write_pages']); $this->assertEquals(PERMS_SPECIFIC, $stdlimits['write_wiki']); $this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_wall']); - $this->assertEquals(PERMS_PUBLIC, $stdlimits['post_comments']); + $this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_comments']); $this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_mail']); $this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_like']); $this->assertEquals(PERMS_SPECIFIC, $stdlimits['tag_deliver']); -- cgit v1.2.3 From 28bc4089d09c225e77c8255b0cb3a33ea2e1020a Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 23 Apr 2018 10:03:39 +0200 Subject: fix permission role test --- tests/unit/Access/PermissionRolesTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/unit/Access/PermissionRolesTest.php b/tests/unit/Access/PermissionRolesTest.php index f2636da62..58fd88bb1 100644 --- a/tests/unit/Access/PermissionRolesTest.php +++ b/tests/unit/Access/PermissionRolesTest.php @@ -62,7 +62,7 @@ class PermissionRolesTest extends UnitTestCase { $this->assertEquals($roles, $r->roles()); $socialNetworking = [ - 'social_party' => 'Social - Party', + 'social_federation' => 'Social - Federation', 'social' => 'Social - Mostly Public', 'social_restricted' => 'Social - Restricted', 'social_private' => 'Social - Private' -- cgit v1.2.3