Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTML API: Tables #5

Closed
wants to merge 54 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
80bd30e
Tests: Use `assertSame()` in `WP_Interactivity_API` tests.
SergeyBiryukov Jun 28, 2024
b9ecee3
Build/Test Tools: Introduce two additional reusable PHPUnit workflows.
desrosj Jun 28, 2024
d3ac93a
Build/Test Tools: Allow older branches to use Coding Standards workflow.
desrosj Jun 28, 2024
57910f6
Date/Time: Replace abbreviations for minutes in `human_time_diff()`.
SergeyBiryukov Jun 29, 2024
6645c75
Date/Time: Correct singular form for minutes in `human_time_diff()`.
SergeyBiryukov Jun 30, 2024
80409a2
REST API: Correct image cropping tools in the block editor.
SergeyBiryukov Jul 1, 2024
cf064ef
HTML API: Optimize low-level parsing details in Tag Processor.
dmsnell Jul 1, 2024
fdebb53
Block Hooks: Allow child insertion into Template Part block.
ockham Jul 2, 2024
a2bb45d
Block Hooks: Fix a number of multi-line comment openers.
ockham Jul 2, 2024
d77bb08
Plugins: Remove extra paragraph from plugin row dependency notice.
costdev Jul 2, 2024
486c9a2
Editor: Update packages for 6.6 RC 2.
ellatrix Jul 2, 2024
6af6395
Help/About: Add images to the About page.
ryelle Jul 2, 2024
67aa1d9
Login and Registration: Remove redundant escaping in `wp-login.php`.
SergeyBiryukov Jul 2, 2024
24646a4
Twenty Nineteen: Adds center alignment to Archives and Categories Lis…
karmatosed Jul 2, 2024
f1a3d20
Twenty Twenty-One: Resolves bug on primary navigation.
karmatosed Jul 2, 2024
d510058
Twenty Nineteen: Fixes font size and citation display for Pullquote b…
karmatosed Jul 2, 2024
ea3327a
HTML API: Add missing insertion mode constants.
dmsnell Jul 2, 2024
2930212
Themes: add "description" key to i18n schema
noisysocks Jul 2, 2024
de74333
Twenty Ten: Fixes table and calendar block font size issues.
karmatosed Jul 3, 2024
a285228
Twenty Seventeen and Twenty Ten: Fixes gallery captions being at the …
karmatosed Jul 3, 2024
6d40ef3
Twenty Sixteen: Fixes editor styles for table and calendar blocks and…
karmatosed Jul 3, 2024
4454f4a
Build/Test Tools: Rename current reusable PHPUnit workflow.
desrosj Jul 3, 2024
5466b9c
Users: Pass the previous state of the user as context to the `wp_set_…
SergeyBiryukov Jul 3, 2024
e65f0f2
Build/Test Tools: Fix workflow names in test old branches workflow.
desrosj Jul 3, 2024
28930fc
HTML API: Implement the _reset insertion mode appropriately_ algorithm.
dmsnell Jul 3, 2024
80b7747
Help/About: Update performance improvements string.
peterwilsoncc Jul 4, 2024
922949f
Docs: Update AJAX in Plugins HelpHub link to avoid unnecessary redire…
desrosj Jul 4, 2024
b867b58
Implement SELECT and related tags handling
sirreal Jan 19, 2024
9245930
Remove SELECT from unsupported elements test
sirreal Jul 3, 2024
267a27b
Remove SELECT scope optgroup/option tests
sirreal Jul 3, 2024
b0475fb
Remove SELECT, OPTION, OPTGROUP from unsupported tags
sirreal Jul 3, 2024
1944b66
Remove OPTION,OPTGROUP from gen implied end tags unsupported test
sirreal Jul 3, 2024
8d4b4df
Add OPTION, OPTGROUP to implied end tags
sirreal Jul 4, 2024
1404119
Update step_in_select since tag
sirreal Jul 4, 2024
dc0bbb9
Update since tags on in_select_scope
sirreal Jul 4, 2024
9d99844
Implement in_select_scope via …in_specific_scope
sirreal Jul 4, 2024
352a75f
Merge branch 'html-api/handle-select-tag' into html-api/add-table-sup…
sirreal Feb 2, 2024
ceae9d4
Work on table support
sirreal Feb 2, 2024
922948a
table processing
sirreal Feb 4, 2024
89184de
Disable FRAME / HEAD
sirreal Feb 4, 2024
a68527a
In table body rules
sirreal Feb 5, 2024
afb35bc
prep step_in_row
sirreal Feb 6, 2024
a596326
Remove unsupported table element tests
sirreal Jul 3, 2024
376be8d
phpcbf and implement in row
sirreal Jul 4, 2024
4d6f1e5
Add clear_up_to_last_marker to active formatting
sirreal Jul 4, 2024
963390e
Add step_in_cell method
sirreal Jul 4, 2024
b72f6d9
Use class name for processor state constants access
sirreal Jul 4, 2024
8a41658
Add to generate-implied-end-tags-thoroughly
sirreal Jul 4, 2024
164d81f
Update since tags
sirreal Jul 4, 2024
57f5d6d
Add close_cell method
sirreal Jul 4, 2024
c078160
Pop from open elements instead of removing items
sirreal Jul 4, 2024
41320ac
Complete cases in step_in_table
sirreal Jul 4, 2024
33ffc83
Implement in_table_scope
sirreal Jul 4, 2024
759ca17
Add HTML elements to has_element_in_scope handling
sirreal Jul 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/phpunit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
#
test-with-mysql:
name: PHP ${{ matrix.php }}
uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests.yml@trunk
uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk
permissions:
contents: read
secrets: inherit
Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
#
test-with-mariadb:
name: PHP ${{ matrix.php }}
uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests.yml@trunk
uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk
permissions:
contents: read
secrets: inherit
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/reusable-coding-standards-php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
required: false
type: 'string'
default: 'latest'
old-branch:
description: 'Whether this is an old branch that runs phpcbf instead of phpcs'
required: false
type: 'boolean'
default: false

jobs:
# Runs the PHP coding standards checks.
Expand Down Expand Up @@ -74,6 +79,7 @@ jobs:

- name: Run PHPCS on all Core files
id: phpcs-core
if: ${{ ! inputs.old-branch }}
run: phpcs -n --report-full --cache=./.cache/phpcs-src.json --report-checkstyle=./.cache/phpcs-report.xml

- name: Show PHPCS results in PR
Expand All @@ -82,11 +88,16 @@ jobs:

- name: Check test suite files for warnings
id: phpcs-tests
if: ${{ ! inputs.old-branch }}
run: phpcs tests --report-full --cache=./.cache/phpcs-tests.json --report-checkstyle=./.cache/phpcs-tests-report.xml

- name: Show test suite scan results in PR
if: ${{ always() && steps.phpcs-tests.outcome == 'failure' }}
run: cs2pr ./.cache/phpcs-tests-report.xml

- name: Run PHPCBF on all Core files (old branches)
if: ${{ inputs.old-branch }}
run: phpcbf

- name: Ensure version-controlled files are not modified during the tests
run: git diff --exit-code
184 changes: 184 additions & 0 deletions .github/workflows/reusable-phpunit-tests-v1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
##
# DEPRECATED
#
# A reusable workflow that runs the PHPUnit test suite with the specified configuration.
#
# This workflow is used by branches 4.1 through 5.1.
##
name: Run PHPUnit tests

on:
workflow_call:
inputs:
os:
description: 'Operating system to run tests on'
required: false
type: 'string'
default: 'ubuntu-latest'
php:
description: 'The version of PHP to use, in the format of X.Y'
required: true
type: 'string'
phpunit:
description: 'The PHPUnit version to use when running tests. See .env for details about valid values.'
required: false
type: 'string'
default: ${{ inputs.php }}-fpm
multisite:
description: 'Whether to run tests as multisite'
required: false
type: 'boolean'
default: false
split_slow:
description: 'Whether to run slow tests group.'
required: false
type: 'boolean'
default: false
memcached:
description: 'Whether to test with memcached enabled'
required: false
type: 'boolean'
default: false
phpunit-config:
description: 'The PHPUnit configuration file to use'
required: false
type: 'string'
default: 'phpunit.xml.dist'
allow-errors:
description: 'Whether to continue when test errors occur.'
required: false
type: boolean
default: false
env:
LOCAL_PHP: ${{ inputs.php }}-fpm
LOCAL_PHPUNIT: ${{ inputs.phpunit && inputs.phpunit || inputs.php }}-fpm
LOCAL_PHP_MEMCACHED: ${{ inputs.memcached }}
PHPUNIT_CONFIG: ${{ inputs.phpunit-config }}
PHPUNIT_SCRIPT: php
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}
SLOW_TESTS: 'external-http,media'

jobs:
# Runs the PHPUnit tests for WordPress.
#
# Performs the following steps:
# - Sets environment variables.
# - Sets up the environment variables needed for testing with memcached (if desired).
# - Installs NodeJS.
# - Build WordPress
# _ Installs npm dependencies.
# - Configures caching for Composer.
# _ Installs Composer dependencies (if desired).
# - Logs Docker debug information (about the Docker installation within the runner).
# - Starts the WordPress Docker container.
# - Starts the Memcached server after the Docker network has been created (if desired).
# - Logs general debug information about the runner.
# - Logs the running Docker containers.
# - Logs debug information from inside the WordPress Docker container.
# - Logs debug information about what's installed within the WordPress Docker containers.
# - Install WordPress within the Docker container.
# - Run the PHPUnit tests.
test-php:
name: PHP ${{ inputs.php }} / ${{ inputs.multisite && ' Multisite' || 'Single site' }}${{ inputs.split_slow && ' slow tests' || '' }}${{ inputs.memcached && ' with memcached' || '' }}
runs-on: ${{ inputs.os }}
timeout-minutes: 20

steps:
- name: Configure environment variables
run: |
echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV
echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV

- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}

- name: Set up Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version-file: '.nvmrc'
cache: npm

- name: Install Dependencies
run: npm ci

- name: Build WordPress
run: npm run build

- name: Cache Composer dependencies
if: ${{ env.COMPOSER_INSTALL == true }}
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
env:
cache-name: cache-composer-dependencies
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-php-${{ inputs.php }}-composer-${{ hashFiles('**/composer.lock') }}

- name: Install Composer dependencies
if: ${{ env.COMPOSER_INSTALL == true }}
run: |
docker compose run --rm php composer --version
docker compose run --rm php composer install

- name: Docker debug information
run: |
docker -v
docker compose -v

- name: Start Docker environment
run: |
npm run env:start

# The memcached server needs to start after the Docker network has been set up with `npm run env:start`.
- name: Start the Memcached server.
if: ${{ inputs.memcached }}
run: |
cp tests/phpunit/includes/object-cache.php build/wp-content/object-cache.php
docker run --name memcached --net $(basename "$PWD")_wpdevnet -d memcached

- name: General debug information
run: |
npm --version
node --version
curl --version
git --version
svn --version

- name: Log running Docker containers
run: docker ps -a

- name: WordPress Docker container debug information
run: |
docker compose run --rm mysql mysql --version
docker compose run --rm php php --version
docker compose run --rm php php -m
docker compose run --rm php php -i
docker compose run --rm php locale -a

- name: Install WordPress
run: npm run env:install

- name: Run slow PHPUnit tests
if: ${{ inputs.split_slow }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ${{ env.SLOW_TESTS }}

- name: Run PHPUnit tests for single site excluding slow tests
if: ${{ inputs.php < '7.0' && ! inputs.split_slow && ! inputs.multisite }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-required

- name: Run PHPUnit tests for Multisite excluding slow tests
if: ${{ inputs.php < '7.0' && ! inputs.split_slow && inputs.multisite }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-excluded,oembed-headers

- name: Run PHPUnit tests
if: ${{ inputs.php >= '7.0' }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }}

- name: Run AJAX tests
if: ${{ ! inputs.multisite && ! inputs.split_slow }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ajax

- name: Run external HTTP tests
if: ${{ ! inputs.multisite && ! inputs.split_slow }}
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group external-http
Loading
Loading