Skip to content

Commit fe87ea2

Browse files
committed
Merge remote-tracking branch 'origin/main' into patch-15
2 parents da45584 + 0935dbc commit fe87ea2

File tree

7 files changed

+129
-14
lines changed

7 files changed

+129
-14
lines changed

.github/workflows/phpunit.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: phpunit
2+
3+
on: [push]
4+
5+
jobs:
6+
phpunit:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v3
10+
- uses: php-actions/composer@v6
11+
- uses: php-actions/phpunit@v3

.pre-commit-config.yaml

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# intentionally malformed files
2+
# pre-commit automatically excludes submodules
3+
exclude: |
4+
(?x)^(
5+
.*\.dist|
6+
roles/ood-head/files/auto-copy/var/www/ood/apps/common/common_attributes.yml|
7+
roles/ood-head/files/auto-copy/var/www/ood/apps/sys/dashboard/config/locales/en.yml|
8+
inventory.d/ipv4.py|
9+
files/shibboleth/filtered-incommon-metadata.xml.j2|
10+
)$
11+
12+
repos:
13+
# auto formatters (no work required) #############################################################
14+
# - repo: https://github.com/pre-commit/pre-commit-hooks
15+
# rev: v5.0.0
16+
# hooks:
17+
# - id: trailing-whitespace
18+
# - id: end-of-file-fixer
19+
- repo: local
20+
hooks:
21+
- id: phpcbf
22+
name: PHP Code Beautifier and Fixer
23+
entry: phpcbf
24+
language: system
25+
files: \.php$
26+
args: [--standard=PSR2, --colors]
27+
28+
# linters (work required) ########################################################################
29+
# - repo: https://github.com/pre-commit/pre-commit-hooks
30+
# rev: v5.0.0
31+
# hooks:
32+
# - id: check-yaml
33+
# - id: check-json
34+
# - id: check-xml
35+
# - id: check-added-large-files
36+
# - id: check-executables-have-shebangs
37+
# - repo: https://github.com/gitleaks/gitleaks
38+
# rev: v8.23.1
39+
# hooks:
40+
# - id: gitleaks
41+
- repo: local
42+
hooks:
43+
- id: phpcs
44+
name: PHP CodeSniffer
45+
entry: phpcs
46+
language: system
47+
files: \.php$
48+
args: [--standard=PSR2, --colors]

phpunit.xml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<phpunit
2+
bootstrap="test/unit/bootstrap.php"
3+
failOnWarning="true"
4+
failOnDeprecation="true"
5+
failOnNotice="true"
6+
restrictWarnings="true"
7+
>
8+
<testsuites>
9+
<testsuite name="unit">
10+
<directory>test/unit</directory>
11+
</testsuite>
12+
</testsuites>
13+
</phpunit>

resources/init.php

+8-10
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@
44
* init.php - Initialization script that is run on every page of Unity
55
*/
66

7-
use UnityWebPortal\lib\{
8-
UnityConfig,
9-
UnityLDAP,
10-
UnityMailer,
11-
UnitySQL,
12-
UnitySSO,
13-
UnityUser,
14-
UnityRedis,
15-
UnityWebhook
16-
};
7+
use UnityWebPortal\lib\UnityConfig;
8+
use UnityWebPortal\lib\UnityLDAP;
9+
use UnityWebPortal\lib\UnityMailer;
10+
use UnityWebPortal\lib\UnitySQL;
11+
use UnityWebPortal\lib\UnitySSO;
12+
use UnityWebPortal\lib\UnityUser;
13+
use UnityWebPortal\lib\UnityRedis;
14+
use UnityWebPortal\lib\UnityWebhook;
1715

1816
//
1917
// Initialize Session

test/unit/UnitySiteTest.php

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace UnityWebPortal\lib;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use PHPUnit\Framework\Attributes\DataProvider;
7+
8+
class UnitySiteTest extends TestCase
9+
{
10+
public static function SSHKeyProvider()
11+
{
12+
return [
13+
[false, ""],
14+
[false, "foobar"],
15+
[false, "1"],
16+
[false, '{"key": "value"}'],
17+
[true, "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+XqO25MUB9x/pS04I3JQ7rMGboWyGXh0GUzkOrTi7a"],
18+
[true, " ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+XqO25MUB9x/pS04I3JQ7rMGboWyGXh0GUzkOrTi7a "],
19+
//phpcs:disable
20+
[true, "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJNqo8NKTfXgCsaE3ly0tDCfwFuFgJiftup0bIZnRi5bP5QgDN5BFeJfEUPSY/s/GL2hUAjkz3ytGqvadt84W7w="],
21+
[true, "ssh-rsa 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"],
22+
//phpcs:enable
23+
];
24+
}
25+
26+
#[DataProvider("SSHKeyProvider")]
27+
public function testTestValidSSHKey(bool $expected, string $key)
28+
{
29+
$SITE = new UnitySite();
30+
$this->assertEquals($expected, $SITE->testValidSSHKey($key));
31+
}
32+
}

test/unit/bootstrap.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
require_once __DIR__ . "/../../vendor/autoload.php";
4+
5+
require_once __DIR__ . "/../../resources/lib/UnityLDAP.php";
6+
require_once __DIR__ . "/../../resources/lib/UnityUser.php";
7+
require_once __DIR__ . "/../../resources/lib/UnityGroup.php";
8+
require_once __DIR__ . "/../../resources/lib/UnityOrg.php";
9+
require_once __DIR__ . "/../../resources/lib/UnitySQL.php";
10+
require_once __DIR__ . "/../../resources/lib/UnityMailer.php";
11+
require_once __DIR__ . "/../../resources/lib/UnitySSO.php";
12+
require_once __DIR__ . "/../../resources/lib/UnitySite.php";
13+
require_once __DIR__ . "/../../resources/lib/UnityConfig.php";
14+
require_once __DIR__ . "/../../resources/lib/UnityWebhook.php";
15+
require_once __DIR__ . "/../../resources/lib/UnityRedis.php";

webroot/panel/new_account.php

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
require_once "../../resources/autoload.php";
44

5-
use UnityWebPortal\lib\{
6-
UnitySite,
7-
UnityGroup
8-
};
5+
use UnityWebPortal\lib\UnitySite;
6+
use UnityWebPortal\lib\UnityGroup;
97

108
require_once $LOC_HEADER;
119

0 commit comments

Comments
 (0)