Skip to content

Commit 54bbbd6

Browse files
authored
👷 Switch to GitHub Actions (roots#6)
1 parent aceb5ad commit 54bbbd6

File tree

6 files changed

+84
-28
lines changed

6 files changed

+84
-28
lines changed

.github/workflows/tests.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: PHP Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
11+
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
php-version:
17+
- '8.0'
18+
- '8.1'
19+
- '8.2'
20+
- '8.3'
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Setup PHP
26+
uses: shivammathur/setup-php@v2
27+
with:
28+
php-version: ${{ matrix.php-version }}
29+
coverage: xdebug
30+
31+
- name: Install dependencies
32+
run: composer install --prefer-dist --no-progress
33+
34+
- name: Install specific PHPUnit version
35+
run: composer require "phpunit/phpunit:^9.6" --dev
36+
37+
- name: Run tests
38+
run: composer test
39+
40+
- name: Upload coverage reports to Codecov
41+
uses: codecov/codecov-action@v3
42+
env:
43+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

.travis.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# WordPress Core Installer
22

3-
[![Build Status](https://travis-ci.com/roots/wordpress-core-installer.svg?branch=master)](https://travis-ci.com/roots/wordpress-core-installer)
3+
[![Tests](https://github.com/roots/wordpress-core-installer/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/roots/wordpress-core-installer/actions/workflows/tests.yml)
44
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
55
[![Packagist](https://img.shields.io/packagist/dt/roots/wordpress-core-installer.svg)](https://packagist.org/packages/roots/wordpress-core-installer)
66
![GitHub tag](https://img.shields.io/github/tag/roots/wordpress-core-installer.svg)

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
},
3838
"require-dev": {
3939
"composer/composer": "^1.0 || ^2.0",
40-
"phpunit/phpunit": ">=5.7.27"
40+
"phpunit/phpunit": "^9.6"
4141
},
4242
"conflict": {
4343
"composer/installers": "<1.0.6"

tests/phpunit/WordPressCoreInstallerTest.php

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,19 @@ class WordPressCoreInstallerTest extends TestCase
3333
{
3434
public function testSupports()
3535
{
36-
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
36+
$composer = $this->createComposer();
37+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
38+
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
3739

3840
$this->assertTrue($installer->supports('wordpress-core'));
3941
$this->assertFalse($installer->supports('not-wordpress-core'));
4042
}
4143

4244
public function testDefaultInstallDir()
4345
{
44-
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
46+
$composer = $this->createComposer();
47+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
48+
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
4549
$package = new Package('johnpbloch/test-package', '1.0.0.0', '1.0.0');
4650

4751
$this->assertEquals('wordpress', $installer->getInstallPath($package));
@@ -96,7 +100,9 @@ public function testArrayOfInstallDirs()
96100

97101
public function testCorePackageCanDefineInstallDirectory()
98102
{
99-
$installer = new WordPressCoreInstaller(new NullIO(), $this->createComposer());
103+
$composer = $this->createComposer();
104+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
105+
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
100106
$package = new Package('test/has-default-install-dir', '0.1.0.0', '0.1');
101107
$package->setExtra(array(
102108
'wordpress-install-dir' => 'not-wordpress',
@@ -128,6 +134,7 @@ public function testTwoPackagesCannotShareDirectory()
128134
'Two packages (test/bazbat and test/foobar) cannot share the same directory!'
129135
);
130136
$composer = $this->createComposer();
137+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
131138
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
132139
$package1 = new Package('test/foobar', '1.1.1.1', '1.1.1.1');
133140
$package2 = new Package('test/bazbat', '1.1.1.1', '1.1.1.1');
@@ -139,6 +146,7 @@ public function testTwoPackagesCannotShareDirectory()
139146
public function testTwoPackagesCannotShareDirectoryUnlessWpCoreType()
140147
{
141148
$composer = $this->createComposer();
149+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
142150
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
143151
$package1 = new Package('johnpbloch/wordpress', '4.9.8', '4.9.8');
144152
$package1->setType('wordpress-core');
@@ -162,6 +170,7 @@ public function testSensitiveInstallDirectoriesNotAllowed($directory)
162170
true
163171
);
164172
$composer = $this->createComposer();
173+
$composer->setPackage(new RootPackage('root/package', '1.0.0', '1.0.0'));
165174
$installer = new WordPressCoreInstaller(new NullIO(), $composer);
166175
$package = new Package('test/package', '1.1.0.0', '1.1');
167176
$package->setExtra(array( 'wordpress-install-dir' => $directory ));
@@ -193,7 +202,16 @@ public static function resetInstallPaths()
193202
private function createComposer()
194203
{
195204
$composer = new Composer();
196-
$composer->setConfig(new Config());
205+
$config = new Config();
206+
$composer->setConfig($config);
207+
208+
// Set up DownloadManager with proper Filesystem
209+
$downloadManager = new \Composer\Downloader\DownloadManager(
210+
new \Composer\IO\NullIO(),
211+
false,
212+
new \Composer\Util\Filesystem()
213+
);
214+
$composer->setDownloadManager($downloadManager);
197215

198216
return $composer;
199217
}

tests/phpunit/WordPressCorePluginTest.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
use Composer\Installer\InstallationManager;
2727
use Composer\IO\IOInterface;
2828
use Composer\IO\NullIO;
29+
use Composer\Package\RootPackage;
2930
use Composer\Plugin\PluginInterface;
3031
use Composer\Test\Mock\HttpDownloaderMock;
3132
use Composer\Util\HttpDownloader;
@@ -38,11 +39,24 @@ class WordPressCorePluginTest extends TestCase
3839
public function testActivate()
3940
{
4041
$composer = new Composer();
41-
$composer->setConfig(new Config());
42-
$nullIO = new NullIO();
42+
$config = new Config();
43+
$composer->setConfig($config);
44+
45+
// Set up root package
46+
$rootPackage = new RootPackage('root/package', '1.0.0', '1.0.0');
47+
$composer->setPackage($rootPackage);
48+
49+
// Set up DownloadManager
50+
$downloadManager = new \Composer\Downloader\DownloadManager(
51+
new NullIO(),
52+
false,
53+
new \Composer\Util\Filesystem()
54+
);
55+
$composer->setDownloadManager($downloadManager);
56+
57+
$nullIO = new NullIO();
4358
$installationManager = $this->getInstallationManager($composer, $nullIO);
4459
$composer->setInstallationManager($installationManager);
45-
$composer->setConfig(new Config());
4660

4761
$plugin = new WordPressCorePlugin();
4862
$plugin->activate($composer, $nullIO);

0 commit comments

Comments
 (0)