diff --git a/.github/workflows/wp-tests-phpunit-run.js b/.github/workflows/wp-tests-phpunit-run.js index 24d3419f..ff4d873c 100644 --- a/.github/workflows/wp-tests-phpunit-run.js +++ b/.github/workflows/wp-tests-phpunit-run.js @@ -11,12 +11,9 @@ const fs = require( 'fs' ); const path = require( 'path' ); const expectedErrors = [ - 'Tests_DB_Charset::test_strip_invalid_text', - 'Tests_DB::test_db_reconnect', + 'Tests_DB_Charset::test_invalid_characters_in_query', + 'Tests_DB_Charset::test_set_charset_changes_the_connection_collation', 'Tests_DB::test_get_col_info', - 'Tests_DB::test_process_fields_value_too_long_for_field with data set "invalid chars"', - 'Tests_DB::test_process_fields_value_too_long_for_field with data set "too long"', - 'Tests_DB::test_process_fields', ]; const expectedFailures = [ @@ -24,6 +21,59 @@ const expectedFailures = [ 'Tests_Admin_wpSiteHealth::test_object_cache_thresholds with data set #3', 'Tests_Comment::test_wp_new_comment_respects_comment_field_lengths', 'Tests_Comment::test_wp_update_comment', + 'Tests_DB_Charset::test_get_column_charset with data set #0', + 'Tests_DB_Charset::test_get_column_charset with data set #1', + 'Tests_DB_Charset::test_get_column_charset with data set #2', + 'Tests_DB_Charset::test_get_column_charset with data set #3', + 'Tests_DB_Charset::test_get_column_charset with data set #4', + 'Tests_DB_Charset::test_get_column_charset with data set #5', + 'Tests_DB_Charset::test_get_column_charset with data set #6', + 'Tests_DB_Charset::test_get_column_charset with data set #7', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #0', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #1', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #2', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #3', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #4', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #5', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #6', + 'Tests_DB_Charset::test_get_column_charset_is_mysql_undefined with data set #7', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #0', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #1', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #2', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #3', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #4', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #5', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #6', + 'Tests_DB_Charset::test_get_column_charset_non_mysql with data set #7', + 'Tests_DB_Charset::test_get_table_charset with data set #1', + 'Tests_DB_Charset::test_get_table_charset with data set #4', + 'Tests_DB_Charset::test_get_table_charset with data set #5', + 'Tests_DB_Charset::test_get_table_charset with data set #6', + 'Tests_DB_Charset::test_get_table_charset with data set #7', + 'Tests_DB_Charset::test_process_field_charsets_on_nonexistent_table', + 'Tests_DB_Charset::test_strip_invalid_text with data set #21', + 'Tests_DB_Charset::test_strip_invalid_text with data set #22', + 'Tests_DB_Charset::test_strip_invalid_text with data set #23', + 'Tests_DB_Charset::test_strip_invalid_text with data set #24', + 'Tests_DB_Charset::test_strip_invalid_text with data set #25', + 'Tests_DB_Charset::test_strip_invalid_text with data set #26', + 'Tests_DB_Charset::test_strip_invalid_text with data set #27', + 'Tests_DB_Charset::test_strip_invalid_text with data set #28', + 'Tests_DB_Charset::test_strip_invalid_text with data set #30', + 'Tests_DB_Charset::test_strip_invalid_text with data set #31', + 'Tests_DB_Charset::test_strip_invalid_text with data set #32', + 'Tests_DB_Charset::test_strip_invalid_text with data set #33', + 'Tests_DB_Charset::test_strip_invalid_text with data set #34', + 'Tests_DB_Charset::test_strip_invalid_text with data set #35', + 'Tests_DB_Charset::test_strip_invalid_text with data set #36', + 'Tests_DB_Charset::test_strip_invalid_text with data set #37', + 'Tests_DB_Charset::test_strip_invalid_text with data set #39', + 'Tests_DB_Charset::test_strip_invalid_text with data set #40', + 'Tests_DB_Charset::test_strip_invalid_text with data set #41', + 'Tests_DB_Charset::test_strip_invalid_text_for_column_bails_if_ascii_input_too_long', + 'Tests_DB_Charset::test_strip_invalid_text_from_query with data set "utf8 + utf8mb4"', + 'Tests_DB_Charset::test_table_collation_check with data set "utf8_bin + big5_chinese_ci"', + 'Tests_DB_Charset::test_table_collation_check with data set "utf8_unicode_ci"', 'Tests_DB_dbDelta::test_spatial_indices', 'Tests_DB::test_charset_switched_to_utf8mb4', 'Tests_DB::test_close', @@ -32,6 +82,9 @@ const expectedFailures = [ 'Tests_DB::test_insert_value_too_long_for_field with data set "too long"', 'Tests_DB::test_mysqli_flush_sync', 'Tests_DB::test_non_unicode_collations', + 'Tests_DB::test_pre_get_col_charset_filter', + 'Tests_DB::test_process_fields_on_nonexistent_table', + 'Tests_DB::test_process_fields_value_too_long_for_field with data set "too long"', 'Tests_DB::test_query_value_contains_invalid_chars', 'Tests_DB::test_replace_value_too_long_for_field with data set "too long"', 'Tests_DB::test_replace', diff --git a/wp-setup.sh b/wp-setup.sh index d0b8c393..b3e00de7 100755 --- a/wp-setup.sh +++ b/wp-setup.sh @@ -58,6 +58,10 @@ cp "$DIR"/db.copy "$WP_DIR"/src/wp-content/db.php sed -i.bak "s#'{SQLITE_IMPLEMENTATION_FOLDER_PATH}'#__DIR__.'/plugins/sqlite-database-integration'#g" "$WP_DIR"/src/wp-content/db.php sed -i.bak "s#{SQLITE_PLUGIN}#$WP_DIR/src/wp-content/plugins/sqlite-database-integration/load.php#g" "$WP_DIR"/src/wp-content/db.php -# 5. Install dependencies. +# 5. Rewrite helper class WpdbExposedMethodsForTesting to extend WP_SQLite_DB. +echo "Rewriting helper class 'WpdbExposedMethodsForTesting' to extend WP_SQLite_DB..." +sed -i.bak "s#class WpdbExposedMethodsForTesting extends wpdb {#class WpdbExposedMethodsForTesting extends WP_SQLite_DB {#g" "$WP_DIR"/tests/phpunit/includes/utils.php + +# 6. Install dependencies. echo "Installing dependencies..." npm --prefix "$WP_DIR" install