Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into 3.1-stable
Browse files Browse the repository at this point in the history
  • Loading branch information
NielBuys committed Feb 28, 2024
2 parents 3f947bf + ccd42e6 commit 372475e
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 29 deletions.
26 changes: 22 additions & 4 deletions .github/workflows/test-phpunit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,28 @@ jobs:
strategy:
fail-fast: false
matrix:
php: [ '8.2', '8.1', '8.0', '7.4', '7.3', '7.2']
php: [ '8.3', '8.2', '8.1', '8.0', '7.4']
DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ]
compiler: [ default ]
include:
- php: '8.3'
DB: 'pdo/mysql'
compiler: jit
- php: '8.3'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.3'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.3'
DB: 'mysqli'
compiler: jit
- php: '8.3'
DB: 'pgsql'
compiler: jit
- php: '8.3'
DB: 'sqlite'
compiler: jit
- php: '8.2'
DB: 'pdo/mysql'
compiler: jit
Expand Down Expand Up @@ -95,7 +113,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Override PHP ini values for JIT compiler
if: matrix.compiler == 'jit'
run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV
Expand All @@ -111,9 +129,9 @@ jobs:

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"description": "The CodeIgniter framework",
"description": "Fork of CodeIgniter 3",
"name": "nielbuys/framework",
"type": "project",
"homepage": "https://codeigniter.com",
Expand All @@ -11,7 +11,7 @@
"source": "https://github.com/bcit-ci/CodeIgniter"
},
"require": {
"php": ">=7.2"
"php": ">=7.4"
},
"suggest": {
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
Expand Down
2 changes: 1 addition & 1 deletion readme.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ https://github.com/NielBuys/CodeIgniter/releases
Server Requirements
*******************

PHP version 7.2 or newer (PHP 8.2 ready) is recommended.
PHP version 7.4 or newer (PHP 8.3 ready) is recommended.

************
Installation
Expand Down
28 changes: 14 additions & 14 deletions tests/codeigniter/core/Loader_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function test_library()
// Test loading as an array.
$this->assertInstanceOf('CI_Loader', $this->load->library(array($lib)));
$this->assertTrue(class_exists($class), $class.' does not exist');
$this->assertObjectHasAttribute($lib, $this->ci_obj);
$this->assertObjectHasProperty($lib, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$lib);

// Create library in VFS
Expand Down Expand Up @@ -88,21 +88,21 @@ public function test_library_extension()
$this->assertInstanceOf('CI_Loader', $this->load->library($lib));
$this->assertTrue(class_exists($class), $class.' does not exist');
$this->assertTrue(class_exists($ext), $ext.' does not exist');
$this->assertObjectHasAttribute($name, $this->ci_obj);
$this->assertObjectHasProperty($name, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$name);
$this->assertInstanceOf($ext, $this->ci_obj->$name);

// Test reloading with object name
$obj = 'exttest';
$this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj));
$this->assertObjectHasAttribute($obj, $this->ci_obj);
$this->assertObjectHasProperty($obj, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$obj);
$this->assertInstanceOf($ext, $this->ci_obj->$obj);

// Test reloading
unset($this->ci_obj->$name);
$this->assertInstanceOf('CI_Loader', $this->load->library($lib));
$this->assertObjectHasAttribute($name, $this->ci_obj);
$this->assertObjectHasProperty($name, $this->ci_obj);

// Create baseless library
$name = 'ext_baseless_lib';
Expand Down Expand Up @@ -140,7 +140,7 @@ public function test_library_config()
$obj = 'testy';
$this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj));
$this->assertTrue(class_exists($class), $class.' does not exist');
$this->assertObjectHasAttribute($obj, $this->ci_obj);
$this->assertObjectHasProperty($obj, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$obj);
$this->assertEquals($cfg, $this->ci_obj->$obj->config);

Expand Down Expand Up @@ -172,7 +172,7 @@ public function test_load_library_in_application_dir()

// Was the model class instantiated.
$this->assertTrue(class_exists($class), $class.' does not exist');
$this->assertObjectHasAttribute($lib, $this->ci_obj);
$this->assertObjectHasProperty($lib, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$lib);
}

Expand All @@ -193,13 +193,13 @@ class_exists('CI_Driver_Library', TRUE);
// Test loading as an array.
$this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver)));
$this->assertTrue(class_exists($class), $class.' does not exist');
$this->assertObjectHasAttribute($driver, $this->ci_obj);
$this->assertObjectHasProperty($driver, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$driver);

// Test loading as a library with a name
$obj = 'testdrive';
$this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj));
$this->assertObjectHasAttribute($obj, $this->ci_obj);
$this->assertObjectHasProperty($obj, $this->ci_obj);
$this->assertInstanceOf($class, $this->ci_obj->$obj);

// Test a string given to params
Expand All @@ -222,7 +222,7 @@ public function test_models()

// Was the model class instantiated.
$this->assertTrue(class_exists($model));
$this->assertObjectHasAttribute($model, $this->ci_obj);
$this->assertObjectHasProperty($model, $this->ci_obj);

// Test no model given
$this->assertInstanceOf('CI_Loader', $this->load->model(''));
Expand All @@ -248,8 +248,8 @@ public function test_model_subdir()

// Was the model class instantiated?
$this->assertTrue(class_exists($model));
$this->assertObjectHasAttribute($name, $this->ci_obj);
$this->assertObjectHasAttribute($name, $this->ci_obj);
$this->assertObjectHasProperty($name, $this->ci_obj);
$this->assertObjectHasProperty($name, $this->ci_obj);
$this->assertInstanceOf($base, $this->ci_obj->$name);
$this->assertInstanceOf($model, $this->ci_obj->$name);

Expand Down Expand Up @@ -575,17 +575,17 @@ public function test_initialize()

// Verify library
$this->assertTrue(class_exists($lib_class), $lib_class.' does not exist');
$this->assertObjectHasAttribute($lib, $this->ci_obj);
$this->assertObjectHasProperty($lib, $this->ci_obj);
$this->assertInstanceOf($lib_class, $this->ci_obj->$lib);

// Verify driver
$this->assertTrue(class_exists($drv_class), $drv_class.' does not exist');
$this->assertObjectHasAttribute($drv, $this->ci_obj);
$this->assertObjectHasProperty($drv, $this->ci_obj);
$this->assertInstanceOf($drv_class, $this->ci_obj->$drv);

// Verify model
$this->assertTrue(class_exists($model), $model.' does not exist');
$this->assertObjectHasAttribute($model, $this->ci_obj);
$this->assertObjectHasProperty($model, $this->ci_obj);
$this->assertInstanceOf($model, $this->ci_obj->$model);

// Verify config calls
Expand Down
10 changes: 9 additions & 1 deletion tests/codeigniter/helpers/text_helper_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,15 @@ public function test_censored_words()

public function test_highlight_code()
{
$expect = "<code><span style=\"color: #000000\">\n<span style=\"color: #0000BB\">&lt;?php&nbsp;var_dump</span><span style=\"color: #007700\">(</span><span style=\"color: #0000BB\">\$this</span><span style=\"color: #007700\">);&nbsp;</span><span style=\"color: #0000BB\">?&gt;&nbsp;</span>\n</span>\n</code>";
if (substr(PHP_VERSION, 0, 3) >= '8.3')
{
$expect = "<pre><code style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php var_dump</span><span style=\"color: #007700\">(</span><span style=\"color: #0000BB\">\$this</span><span style=\"color: #007700\">); </span><span style=\"color: #0000BB\">?&gt; ?&gt;</span></code></pre>";
}
else
{
$expect = "<code><span style=\"color: #000000\">\n<span style=\"color: #0000BB\">&lt;?php&nbsp;var_dump</span><span style=\"color: #007700\">(</span><span style=\"color: #0000BB\">\$this</span><span style=\"color: #007700\">);&nbsp;</span><span style=\"color: #0000BB\">?&gt;&nbsp;</span>\n</span>\n</code>";
}


$this->assertEquals($expect, highlight_code('<?php var_dump($this); ?>'));
}
Expand Down
8 changes: 4 additions & 4 deletions tests/codeigniter/libraries/Driver_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ public function test_load_driver()
$this->assertEquals($this->name, $this->lib->get_name());

// Was driver loaded?
$this->assertObjectHasAttribute($driver, $this->lib);
$this->assertObjectHasProperty($driver, $this->lib);
$this->assertInstanceOf($class, $this->lib->$driver);
$this->assertInstanceOf('CI_Driver', $this->lib->$driver);

// Was decorate called?
$this->assertObjectHasAttribute($prop, $this->lib->$driver);
$this->assertObjectHasProperty($prop, $this->lib->$driver);
$this->assertTrue($this->lib->$driver->$prop);

// Do we get an error for an invalid driver?
Expand Down Expand Up @@ -86,7 +86,7 @@ public function test_load_app_driver()
$this->assertNotNull($this->lib->load_driver($driver));

// Was driver loaded?
$this->assertObjectHasAttribute($driver, $this->lib);
$this->assertObjectHasProperty($driver, $this->lib);
$this->assertInstanceOf($class, $this->lib->$driver);
$this->assertInstanceOf('CI_Driver', $this->lib->$driver);

Expand Down Expand Up @@ -120,7 +120,7 @@ public function test_load_driver_ext()
$this->assertNotNull($this->lib->load_driver($driver));

// Was driver loaded?
$this->assertObjectHasAttribute($driver, $this->lib);
$this->assertObjectHasProperty($driver, $this->lib);
$this->assertInstanceOf($class, $this->lib->$driver);
$this->assertInstanceOf($baseclass, $this->lib->$driver);
$this->assertInstanceOf('CI_Driver', $this->lib->$driver);
Expand Down
3 changes: 0 additions & 3 deletions tests/codeigniter/libraries/Encryption_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,6 @@ public function test_initialize_encrypt_decrypt()

$this->assertEquals($message, $this->encryption->decrypt($this->encryption->encrypt($message)));

// Try DES in ECB mode, just for the sake of changing stuff
$this->encryption->initialize(array('cipher' => 'des', 'mode' => 'ecb', 'key' => substr($key, 0, 8)));
$this->assertEquals($message, $this->encryption->decrypt($this->encryption->encrypt($message)));
}

// --------------------------------------------------------------------
Expand Down

0 comments on commit 372475e

Please sign in to comment.