From f77c6b2757ddde08ccf3bd79a9d2a50ccfea9940 Mon Sep 17 00:00:00 2001 From: Vitalii Solovei Date: Tue, 7 Apr 2026 14:56:57 +0200 Subject: [PATCH] fix tests (WP-998) Co-Authored-By: Claude Sonnet 4.6 --- Buildplan/Dockerfile | 2 +- .../Extensions/Acf/AcfDynamicSupport.php | 10 ++++++---- .../tests/AdvancedCustomFieldsTest.php | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Buildplan/Dockerfile b/Buildplan/Dockerfile index 379b93481..3661b2c9f 100644 --- a/Buildplan/Dockerfile +++ b/Buildplan/Dockerfile @@ -72,8 +72,8 @@ RUN service mysql start && cd ${WP_INSTALL_DIR} && \ ${WPCLI} core multisite-convert && \ IFS=',' read -a array <<< "${SITES}"; for site in "${array[@]}"; do ${WPCLI} site create --slug="${site##*\:}" --title="${site%%\:*}" --email=test@wp.org; done && \ IFS=';' read -a array <<< "${DEPENDENCIES}"; for plugin_name in "${array[@]}"; do ${WPCLI} plugin install $plugin_name --activate-network; done && \ - if [ "latest" != "${ACF_PRO_VERSION}" ]; then DLINK="${DLINK}&t=${ACF_PRO_VERSION}"; fi && \ DLINK="https://connect.advancedcustomfields.com/index.php?a=download&p=pro&k=${ACFPRO_KEY}" && \ + if [ "latest" != "${ACF_PRO_VERSION}" ]; then DLINK="${DLINK}&t=${ACF_PRO_VERSION}"; fi && \ BUILD_FQFN="${WP_INSTALL_DIR}/advanced-custom-fields-pro.zip" && \ curl ${DLINK} --output ${BUILD_FQFN} && \ ${WPCLI} plugin install ${BUILD_FQFN} --activate-network && \ diff --git a/inc/Smartling/Extensions/Acf/AcfDynamicSupport.php b/inc/Smartling/Extensions/Acf/AcfDynamicSupport.php index f771edc1a..7dc5c86b4 100644 --- a/inc/Smartling/Extensions/Acf/AcfDynamicSupport.php +++ b/inc/Smartling/Extensions/Acf/AcfDynamicSupport.php @@ -687,10 +687,12 @@ private function getFieldsFromPosts(array $posts): array { $fields = []; foreach ($posts as $post) { - $configuration = unserialize($post->post_content); - $fields[$post->post_name] = [ - 'type' => $configuration['type'], - ]; + $configuration = unserialize($post->post_content, ['allowed_classes' => false]); + $fieldData = ['type' => $configuration['type']]; + if ($configuration['type'] === 'clone' && array_key_exists('clone', $configuration)) { + $fieldData['clone'] = $configuration['clone']; + } + $fields[$post->post_name] = $fieldData; $subFields = $this->rawReadFields($post->ID); if (0 < count($subFields)) { $fields = array_merge($fields, $subFields); diff --git a/tests/IntegrationTests/tests/AdvancedCustomFieldsTest.php b/tests/IntegrationTests/tests/AdvancedCustomFieldsTest.php index 6884cfbe6..911f1e65b 100644 --- a/tests/IntegrationTests/tests/AdvancedCustomFieldsTest.php +++ b/tests/IntegrationTests/tests/AdvancedCustomFieldsTest.php @@ -130,6 +130,16 @@ public function testAdvancedCustomFields() $categorySubmission = ArrayHelper::first($submissions); $expectedMetadata = $this->getMetadata($categorySubmission->getTargetId(), $attachmentSubmission->getTargetId()); + $translatedFields = [ + 'text_field', + 'html_field', + 'repeater_field_0_repeater_text_field', + 'flexible_content_field_0_flexible_content_text_field', + 'flexible_content_field_1_flexible_content_text_field', + ]; + foreach ($translatedFields as $field) { + unset($expectedMetadata[$field]); + } $submissions = $this->getSubmissionManager()->find( [ @@ -148,6 +158,11 @@ public function testAdvancedCustomFields() } unset($realMetadatum); + foreach ($translatedFields as $translatedField) { + self::assertArrayHasKey($translatedField, $realMetadata, "$translatedField must exist in target metadata after translation"); + self::assertNotEmpty($realMetadata[$translatedField], "$translatedField must be non-empty after translation"); + } + foreach ($expectedMetadata as $eKey => $eValue) { self::assertArrayHasKey($eKey, $realMetadata);