diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml new file mode 100644 index 0000000..e36bf58 --- /dev/null +++ b/.github/workflows/unittest.yml @@ -0,0 +1,54 @@ +name: Unit Tests + +on: + push: + branches: [main] + pull_request: + +jobs: + build-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "8.3" + extensions: brotli zstd zlib + tools: composer + + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install dependencies + run: | + composer install --prefer-dist + sudo apt-get install brotli zstd gzip -y + + - name: Start the server + working-directory: tests + run: nohup php -S localhost:8000 + + - name: Test gzip + run: | + output=$(curl localhost:8000 -s -H "Accept-Encoding: gzip" | gzip -d -) + echo "$output" + + - name: Test brotli + run: | + output=$(curl localhost:8000 -s -H "Accept-Encoding: br" | brotli -d -) + echo "$output" + + - name: Test zstd + run: | + output=$(curl localhost:8000 -s -H "Accept-Encoding: zstd" | zstd -d -) + echo "$output" diff --git a/index.php b/tests/index.php similarity index 65% rename from index.php rename to tests/index.php index e37d255..5fd7035 100644 --- a/index.php +++ b/tests/index.php @@ -2,11 +2,11 @@ use HostByBelle\CompressionBuffer; -require 'vendor/autoload.php'; +require dirname(__DIR__) . '/vendor/autoload.php'; CompressionBuffer::setUp(); ob_start([CompressionBuffer::class, 'handler']); -echo "If you can read this, it works!"; +echo "Hello, world!"; ob_end_flush();