Skip to content

Commit cf01c87

Browse files
committed
updates adding tests in and updating readme/composer file
1 parent 6d650a5 commit cf01c87

5 files changed

Lines changed: 704 additions & 30 deletions

File tree

.github/workflows/tests.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
tests:
11+
name: PHP ${{ matrix.php-version }}
12+
runs-on: ubuntu-latest
13+
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
php-version: ['8.2', '8.3', '8.4']
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Setup PHP
24+
uses: shivammathur/setup-php@v2
25+
with:
26+
php-version: ${{ matrix.php-version }}
27+
extensions: soap
28+
coverage: xdebug
29+
30+
- name: Install dependencies
31+
run: composer install --prefer-dist --no-progress --no-interaction
32+
33+
- name: Run tests
34+
run: vendor/bin/phpunit --colors=always

README.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,46 @@
1-
# Novnc handling plugin for MyAdmin
1+
# MyAdmin NoVNC Plugin
22

3-
Novnc handling plugin for MyAdmin
3+
[![Build Status](https://github.com/detain/myadmin-novnc-plugin/actions/workflows/tests.yml/badge.svg)](https://github.com/detain/myadmin-novnc-plugin/actions)
4+
[![Latest Stable Version](https://poser.pugx.org/detain/myadmin-novnc-plugin/version)](https://packagist.org/packages/detain/myadmin-novnc-plugin)
5+
[![Total Downloads](https://poser.pugx.org/detain/myadmin-novnc-plugin/downloads)](https://packagist.org/packages/detain/myadmin-novnc-plugin)
6+
[![License](https://poser.pugx.org/detain/myadmin-novnc-plugin/license)](https://packagist.org/packages/detain/myadmin-novnc-plugin)
47

5-
## Build Status and Code Analysis
8+
A plugin for the [MyAdmin](https://github.com/detain/myadmin) control panel framework that provides NoVNC HTML5 VNC connection handling. This plugin integrates browser-based VNC access into MyAdmin, enabling remote desktop connectivity through an HTML5-compatible interface without requiring standalone VNC client software.
69

7-
Site | Status
8-
--------------|---------------------------
9-
![Travis-CI](http://i.is.cc/storage/GYd75qN.png "Travis-CI") | [![Build Status](https://travis-ci.org/detain/myadmin-novnc-plugin.svg?branch=master)](https://travis-ci.org/detain/myadmin-novnc-plugin)
10-
![CodeClimate](http://i.is.cc/storage/GYlageh.png "CodeClimate") | [![Code Climate](https://codeclimate.com/github/detain/myadmin-novnc-plugin/badges/gpa.svg)](https://codeclimate.com/github/detain/myadmin-novnc-plugin) [![Test Coverage](https://codeclimate.com/github/detain/myadmin-novnc-plugin/badges/coverage.svg)](https://codeclimate.com/github/detain/myadmin-novnc-plugin/coverage) [![Issue Count](https://codeclimate.com/github/detain/myadmin-novnc-plugin/badges/issue_count.svg)](https://codeclimate.com/github/detain/myadmin-novnc-plugin)
11-
![Scrutinizer](http://i.is.cc/storage/GYeUnux.png "Scrutinizer") | [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/?branch=master) [![Build Status](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/badges/build.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/novnc-plugin/build-status/master)
12-
![Codacy](http://i.is.cc/storage/GYi66Cx.png "Codacy") | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/226251fc068f4fd5b4b4ef9a40011d06)](https://www.codacy.com/app/detain/myadmin-novnc-plugin) [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/25fa74eb74c947bf969602fcfe87e349)](https://www.codacy.com/app/detain/myadmin-novnc-plugin?utm_source=github.com&utm_medium=referral&utm_content=detain/myadmin-novnc-plugin&utm_campaign=Badge_Coverage)
13-
![Coveralls](http://i.is.cc/storage/GYjNSim.png "Coveralls") | [![Coverage Status](https://coveralls.io/repos/github/detain/db_abstraction/badge.svg?branch=master)](https://coveralls.io/github/detain/myadmin-novnc-plugin?branch=master)
14-
![Packagist](http://i.is.cc/storage/GYacBEX.png "Packagist") | [![Latest Stable Version](https://poser.pugx.org/detain/myadmin-novnc-plugin/version)](https://packagist.org/packages/detain/myadmin-novnc-plugin) [![Total Downloads](https://poser.pugx.org/detain/myadmin-novnc-plugin/downloads)](https://packagist.org/packages/detain/myadmin-novnc-plugin) [![Latest Unstable Version](https://poser.pugx.org/detain/myadmin-novnc-plugin/v/unstable)](//packagist.org/packages/detain/myadmin-novnc-plugin) [![Monthly Downloads](https://poser.pugx.org/detain/myadmin-novnc-plugin/d/monthly)](https://packagist.org/packages/detain/myadmin-novnc-plugin) [![Daily Downloads](https://poser.pugx.org/detain/myadmin-novnc-plugin/d/daily)](https://packagist.org/packages/detain/myadmin-novnc-plugin) [![License](https://poser.pugx.org/detain/myadmin-novnc-plugin/license)](https://packagist.org/packages/detain/myadmin-novnc-plugin)
10+
## Features
1511

12+
- HTML5-based VNC connections via NoVNC
13+
- Seamless integration with the MyAdmin plugin system
14+
- Event-driven architecture using Symfony EventDispatcher
15+
- Admin menu and settings integration
16+
17+
## Requirements
18+
19+
- PHP 8.2 or higher
20+
- ext-soap
21+
- Symfony EventDispatcher 5.x, 6.x, or 7.x
1622

1723
## Installation
1824

19-
Install with composer like
25+
Install via Composer:
2026

2127
```sh
2228
composer require detain/myadmin-novnc-plugin
2329
```
2430

25-
## License
31+
## Usage
32+
33+
The plugin registers itself automatically through the MyAdmin plugin loader system. It hooks into the event dispatcher to provide menu entries and configuration settings for NoVNC connections.
34+
35+
## Testing
2636

27-
The Novnc handling plugin for MyAdmin class is licensed under the LGPL-v2.1 license.
37+
Run the test suite with PHPUnit:
38+
39+
```sh
40+
composer install
41+
vendor/bin/phpunit
42+
```
43+
44+
## License
2845

46+
This package is licensed under the [LGPL-2.1](LICENSE) license.

composer.json

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,46 @@
11
{
22
"name": "detain/myadmin-novnc-plugin",
33
"type": "myadmin-plugin",
4-
"description": "Novnc handling plugin for MyAdmin",
4+
"description": "NoVNC HTML5 VNC connection handling plugin for the MyAdmin control panel framework",
55
"keywords": [
6-
"abuse",
7-
"administration",
8-
"spam"
6+
"novnc",
7+
"vnc",
8+
"html5",
9+
"remote-desktop",
10+
"myadmin",
11+
"plugin"
912
],
1013
"license": "LGPL-2.1-only",
1114
"authors": [
1215
{
1316
"name": "Joe Huss",
14-
"homepage": "https:\/\/my.interserver.net\/"
17+
"homepage": "https://my.interserver.net/"
1518
}
1619
],
1720
"config": {
18-
"bin-dir": "vendor\/bin",
19-
"minimum-stability": "dev"
21+
"bin-dir": "vendor/bin",
22+
"minimum-stability": "dev",
23+
"allow-plugins": {
24+
"detain/myadmin-plugin-installer": true
25+
}
2026
},
2127
"require": {
22-
"php": ">=5.0.0",
28+
"php": ">=8.2",
2329
"ext-soap": "*",
24-
"symfony/event-dispatcher": "^5.0@stable",
30+
"symfony/event-dispatcher": "^5.0||^6.0||^7.0",
2531
"detain/myadmin-plugin-installer": "dev-master"
26-
},
32+
},
2733
"require-dev": {
28-
"phpunit/phpunit": "*",
29-
"phpunit/phpunit-mock-objects": "*",
30-
"vlucas/phpdotenv": "*",
31-
"codeclimate/php-test-reporter": "dev-master",
32-
"satooshi/php-coveralls": "*",
33-
"codacy/coverage": "dev-master"
34+
"phpunit/phpunit": "^9.6"
3435
},
3536
"autoload": {
3637
"psr-4": {
3738
"Detain\\MyAdminNovnc\\": "src/"
3839
}
40+
},
41+
"autoload-dev": {
42+
"psr-4": {
43+
"Detain\\MyAdminNovnc\\Tests\\": "tests/"
44+
}
3945
}
4046
}

phpunit.xml.dist

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
4+
bootstrap="vendor/autoload.php"
5+
colors="true"
6+
verbose="true"
7+
failOnRisky="true"
8+
failOnWarning="true"
9+
cacheResultFile=".phpunit.cache/test-results"
10+
executionOrder="depends,defects"
11+
beStrictAboutOutputDuringTests="true"
12+
beStrictAboutTodoAnnotatedTests="true">
13+
<testsuites>
14+
<testsuite name="Unit">
15+
<directory>tests</directory>
16+
</testsuite>
17+
</testsuites>
18+
<coverage>
19+
<include>
20+
<directory suffix=".php">src</directory>
21+
</include>
22+
</coverage>
23+
</phpunit>

0 commit comments

Comments
 (0)