# We divide the EFL WK2 test expectations into several categories:
# 1. PASSING TESTS
#    Test cases that pass for EFL WK2 but are skipped in a top-level TestExpectations file.

# 2. TESTS EXPECTED TO FAIL
#    Test cases related to features that we don't expect to be activated for EFL WK2 since
#    the feature implementation in WebKit2 is missing or not complete yet.
#    If test cases related to a feature cannot be activated since e.g.
#    * the feature implementation in WebCore is not complete yet
#    * the feature is not relevant for the EFL port
#    * the feature is meant to solve a backwards compatibility issue on other platforms
#    please put them into EFL TestExpectations file.
#    If in doubt, please discuss on webkit-efl mailing list whether a set of test cases
#    should be moved here.

# 3. CRASHES

# 4. FLAKY TESTS

# 5. PASSING TESTS WITH INCORRECT EXPECTATIONS
#    * Test cases that are passing with their generated incorrect expectations.
#    * It should be checked if the test fails. Remove the line if the test result is correct
#      otherwise update with new incorrect one.

# 6. FAILING TESTS
#    * Interim failures that are moved here for further investigation as a result of daily
#      gardening. They should be analysed quickly and either resolved or moved to 1).
#    * Remaining failures that are moved here until further investigation after
#      unskipping a directory or block of tests in the Skipped list.
#    * Tests that we expect to pass once the respective fix for DRT is available or
#      a relevant compile time feature can be enabled for EFL.

#////////////////////////////////////////////////////////////////////////////////////////
# PASSING TESTS
#////////////////////////////////////////////////////////////////////////////////////////

#////////////////////////////////////////////////////////////////////////////////////////
# TESTS EXPECTED TO FAIL
#////////////////////////////////////////////////////////////////////////////////////////

#////////////////////////////////////////////////////////////////////////////////////////
# CRASHES
#////////////////////////////////////////////////////////////////////////////////////////
webkit.org/b/92726 fast/dom/register-protocol-handler.html [ Crash ]
webkit.org/b/92726 fast/dom/unregister-protocol-handler.html [ Crash ]

# Crashes on plugin test, also blocked by 108077
webkit.org/b/98747 plugins/document-open.html [ Crash Failure ]

webkit.org/b/102200 fast/dom/HTMLAnchorElement/anchor-download.html [ Crash Failure ]
webkit.org/b/102200 fast/dom/HTMLAnchorElement/anchor-nodownload-set.html [ Crash Failure ]

# Hitting !decoder.destinationID() assertion.
webkit.org/b/102651 [ Debug ] networkinformation/multiple-frames.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/basic-all-types-of-events.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/updates.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/add-listener-from-callback.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/basic-operation.html [ Crash ]

# WebGL test cases crashing in WebCore::GraphicsContext3D::readPixels().
webkit.org/b/109417 webgl/conformance/textures/texture-attachment-formats.html [ Crash Failure ]
webkit.org/b/109941 webgl/conformance/textures/origin-clean-conformance.html [ Crash ]
webkit.org/b/109945 webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Crash ]
webkit.org/b/109945 webgl/conformance/uniforms/gl-uniform-arrays.html [ Crash Failure ]
webkit.org/b/109945 webgl/conformance/uniforms/uniform-default-values.html [ Crash ]

# Known WebGL conformance test failures, fails on Intel and AMD hardware
webgl/1.0.1/conformance/textures/origin-clean-conformance.html [ Crash ]
webgl/1.0.2/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Crash ]
webgl/1.0.2/conformance/uniforms/uniform-default-values.html [ Crash ]

#////////////////////////////////////////////////////////////////////////////////////////
# FLAKY TESTS
#////////////////////////////////////////////////////////////////////////////////////////

webkit.org/b/111612 animations/animation-delay-changed.html [ Failure Pass ]

Bug(EFL) editing/selection/first-letter-selection-crash.html [ Crash Pass ]
Bug(EFL) http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html [ Crash Pass ]
Bug(EFL) media/video-played-reset.html [ Failure Pass ]
Bug(EFL) fast/loader/fragment-after-redirect-gets-back-entry.html [ Failure Pass ]
Bug(EFL) fast/loader/child-frame-add-after-back-forward.html [ Failure Pass ]
Bug(EFL) fast/forms/validation-message-user-modify.html [ Failure Pass ]
Bug(EFL) fast/events/backspace-navigates-back.html [ Failure Pass ]
Bug(EFL) fast/events/onchange-click-hang.html [ Failure Pass ]
Bug(EFL) fast/events/dispatch-message-string-data.html [ Failure Pass ]
Bug(EFL) fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html [ ImageOnlyFailure Pass ]
Bug(EFL) fast/events/domactivate-sets-underlying-click-event-as-handled.html [ Failure Pass ]
Bug(EFL) http/tests/loading/fire-error-event-empty-404-script.html [ Crash Failure Pass ]
Bug(EFL) js/dom/create-lots-of-workers.html [ Crash Failure Pass ]
Bug(EFL) media/track/track-element-load-event.html [ Crash Failure Pass ]

webkit.org/b/98761 svg/text/selection-tripleclick.svg [ Failure Pass ]

# Test is flaky and needs to be fixed
webkit.org/b/56985 http/tests/loading/bad-server-subframe.html [ Crash Pass ]

# Affects multiple platforms.
webkit.org/b/90980 fast/forms/textarea/textarea-state-restore.html [ Failure Pass ]

# Flaky, probably because the result is sometimes taken before data about visited link have passed through IPC.
webkit.org/b/81797 fast/history/visited-link-background-color.html [ Failure  Pass ]

# Also flaky at least on GTK+
webkit.org/b/72698 media/audio-garbage-collect.html

# window.internals does not reset font family mappings (done in other tests), leading to these failures
webkit.org/b/102370 fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure Pass ]
webkit.org/b/102370 fast/writing-mode/japanese-ruby-vertical-rl.html [ Failure Pass ]

webkit.org/b/102204 http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html [ Crash Pass ]

webkit.org/b/95428 media/video-controls-captions.html [ Failure ]
webkit.org/b/113106 media/track/track-prefer-captions.html [ Failure ]

# Flaky on Debug bot. See also webkit.org/b/102190
webkit.org/b/103043 fast/events/overflow-scroll-fake-mouse-move.html [ Failure Pass ]
webkit.org/b/103043 fast/events/frame-scroll-fake-mouse-move.html [ Failure Pass ]

# Failures after r130363.
webkit.org/b/98573 fast/forms/multiple-form-submission-protection-mouse.html [ Failure Pass ]

webkit.org/b/103115 http/tests/loading/remove-child-triggers-parser.html [ Failure Pass ]

webkit.org/b/102201 fast/dom/Window/window-resize.html [ Failure Pass ]

webkit.org/b/103396 [ Debug ] fast/forms/state-restore-per-form.html [ Failure Pass ]
webkit.org/b/103399 [ Debug ] fast/forms/basic-buttons.html [ Failure Pass ]

webkit.org/b/103400 [ Debug ] compositing/overflow/content-gains-scrollbars.html [ Crash Failure ]
webkit.org/b/103400 [ Debug ] compositing/overflow/content-loses-scrollbars.html [ Crash Failure ]

# Assertion failure and incorrect results on our port after r140999 (webkit.org/b/106142)
webkit.org/b/108257 compositing/overflow/automatically-opt-into-composited-scrolling.html [ Failure ]
webkit.org/b/108257 compositing/overflow/composited-scrolling-creates-a-stacking-container.html [ Missing Failure ]

# Asserts when destroying WebCore::Database (possibly because r141207)
webkit.org/b/108355 js/caller-property.html [ Crash Pass ]
webkit.org/b/108355 storage/websql/close-during-stress-test.html [ Crash Pass ]
webkit.org/b/108355 storage/websql/sql-error-codes.html [ Crash Pass ]

#////////////////////////////////////////////////////////////////////////////////////////
# PASSING TESTS WITH INCORRECT EXPECTATIONS
#////////////////////////////////////////////////////////////////////////////////////////
 
#////////////////////////////////////////////////////////////////////////////////////////
# FAILING TESTS
#////////////////////////////////////////////////////////////////////////////////////////

# Missing EFL's accessibility functions
webkit.org/b/111984 accessibility/aria-hidden-updates-alldescendants.html [ Failure ]
webkit.org/b/111988 accessibility/aria-readonly.html [ Failure ]
webkit.org/b/111991 accessibility/aria-text-role.html [ Failure ]
webkit.org/b/111994 accessibility/canvas-accessibilitynodeobject.html [ Failure ]
webkit.org/b/111996 accessibility/canvas-fallback-content-2.html [ Failure ]
webkit.org/b/111999 accessibility/disabled-controls-not-focusable.html [ Failure ]
webkit.org/b/112002 accessibility/inline-continuations.html [ Failure ]
webkit.org/b/112005 accessibility/onclick-handlers.html [ Failure ]
webkit.org/b/112006 accessibility/secure-textfield-title-ui.html [ Failure ]
webkit.org/b/112008 accessibility/spinbutton-value.html [ Failure ]
webkit.org/b/112012 accessibility/svg-bounds.html [ Failure ]
webkit.org/b/112014 accessibility/textarea-insertion-point-line-number.html [ Failure ]
webkit.org/b/112018 accessibility/th-as-title-ui.html [ Failure ]
webkit.org/b/112021 accessibility/visible-elements.html [ Failure Crash ]

# New accessibility test added in r149858 that is failing for EFL.
webkit.org/b/115901 accessibility/poorly-formed-aria-table.html [ Failure ]

# New accessibility test added in r151079 that is failing for EFL.
webkit.org/b/117182 accessibility/text-role-with-aria-hidden-inside.html [ Failure ]

webkit.org/b/118418 accessibility/img-fallsback-to-title.html [ Missing ]
webkit.org/b/98348  accessibility/internal-link-anchors2.html [ Missing ]
webkit.org/b/116970 accessibility/multiselect-list-reports-active-option.html [ Missing ]
webkit.org/b/98348  accessibility/radio-button-group-members.html [ Missing ]

accessibility/negative-tabindex-does-not-expose-label.html [ Missing ]

# EFL port doesn't support webarchives.
webarchive [ Skip ]
svg/webarchive [ Skip ]
svg/custom/image-with-prefix-in-webarchive.svg [ Skip ]
http/tests/webarchive [ Skip ]

# WebKitTestRunner needs an implementation for testRunner.titleTextDirection
webkit.org/b/93470 fast/dom/title-directionality-removeChild.html [ Failure ]
webkit.org/b/93470 fast/dom/title-directionality.html [ Failure ]

# WebKitTestRunner setTouchPointRadius() is not supported
Bug(EFL) fast/events/touch/basic-single-touch-events.html [ Failure ]

# Needs grammar checking
Bug(EFL) editing/spelling/grammar.html [ Failure ]
Bug(EFL) editing/spelling/grammar-edit-word.html [ Failure ]
Bug(EFL) editing/spelling/grammar-markers.html [ Failure ]
Bug(EFL) editing/spelling/grammar-markers-hidpi.html [ Failure ]
Bug(EFL) editing/spelling/grammar-paste.html [ Failure ]
Bug(EFL) editing/spelling/markers.html [ Failure ]

# EFL's text checker doesn't support the text replacement feature.
Bug(EFL) editing/spelling/spelling-marker-description.html [ Failure ]

# EFL's text checker doesn't support multi-word misspelling.
# Mac bug: https://bugs.webkit.org/show_bug.cgi?id=114470
editing/spelling/spelling-exactly-selected-multiple-words.html [ Failure ]
editing/spelling/spelling-should-select-multiple-words.html [ Failure ]

# Fails because MutationObservers are not notified at end-of-task.
webkit.org/b/78290 fast/dom/MutationObserver/end-of-task-delivery.html [ Failure ]

# testRunner.setUseDeferredFrameLoading() is not implemented in WK2. Skipped so it does not generate PNG results.
webkit.org/b/93980 http/tests/appcache/load-from-appcache-defer-resume-crash.html [ Skip ]

# WebKitTestRunner needs an implementation for testRunner.setStorageDatabaseIdleInterval
webkit.org/b/93982 storage/domstorage/storage-close-database-on-idle.html [ Failure ]

# The following test makes the fast/parser/document-write-ignores-later-network-bytes.html test crash
webkit.org/b/98345 fast/parser/document-open-in-unload.html [ Skip ]

# NPP_SetWindow is not called with proper size for the first time.
webkit.org/b/98746 plugins/netscape-plugin-setwindow-size-2.html [ Failure ]

# Mouse event problem with plugin test.
webkit.org/b/98745 plugins/keyboard-events.html [ Failure ]
webkit.org/b/98745 plugins/mouse-events-fixedpos.html [ Failure ]
webkit.org/b/98745 plugins/mouse-events.html [ Failure ]

# Window size is being reported as screen size.
webkit.org/b/103127 css3/device-adapt/opera/constrain-021.xhtml [ Failure ]
webkit.org/b/103127 css3/device-adapt/opera/constrain-022.xhtml [ Failure ]

# Page client doesn't react to orientation changes from CSS Viewport rules.
webkit.org/b/103130 css3/device-adapt/opera/orientation-001.xhtml [ Failure ]

# Text input controller needs selectedRange implementation
webkit.org/b/99438 editing/selection/mixed-editability-10.html [ Missing Failure ]

# NPN_ReloadPlugins is not implemented.
webkit.org/b/98744 plugins/reloadplugins-and-pages.html [ Failure ]

# Plugin test timeout.
webkit.org/b/98743 plugins/evaluate-js-after-removing-plugin-element.html [ Failure ]

# Reloading a Netscape plugin that accesses its own DOM element is failing.
webkit.org/b/82020 plugins/netscape-dom-access-and-reload.html [ Failure ]

# Plugin test failures having wrong object reference count problem.
webkit.org/b/98741 plugins/npruntime/browser-object-identity.html [ Failure ]
webkit.org/b/98741 plugins/refcount-leaks.html [ Failure ]

# New compositing tests introduced in r137051 that fail on WK2 EFL.
webkit.org/b/104476 compositing/background-color/background-color-padding-change.html [ ImageOnlyFailure ]

# These ref tests are failing because the text is blurry.
webkit.org/b/105766 compositing/text-on-scaled-layer.html [ ImageOnlyFailure ]
webkit.org/b/105766 compositing/text-on-scaled-surface.html [ ImageOnlyFailure ]

# Failing svg ref tests.
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive.svg [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive-b.svg [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive-c.svg  [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/transforms/transformed-text-fill-pattern.html [ ImageOnlyFailure ]
webkit.org/b/107018 svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg [ ImageOnlyFailure Pass ]

webkit.org/b/104656 compositing/repaint/clipped-layer-size-change.html [ ImageOnlyFailure Pass ]

# NPP_SetWindow is not called during plugin destruction on X11.
webkit.org/b/63261 plugins/npp-set-window-called-during-destruction.html [ Failure ]

# Delete plugin failures.
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-hasProperty-return-false.html [ Failure ]
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-hasProperty-return-true.html [ Failure ]
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-setProperty.html [ Failure ]

# Http plugin test failures.
webkit.org/b/99561 http/tests/plugins/plugin-document-has-focus.html [ Failure ]
webkit.org/b/99562 http/tests/plugins/post-url-file.html [ Failure ]

# Comparison of two javascript objects in C++ is failing.
webkit.org/b/98739 plugins/npruntime/embed-property-equality.html [ Failure ]

webkit.org/b/113094 editing/pasteboard/can-read-in-copy-and-cut-events.html [ Failure ]
webkit.org/b/113094 editing/pasteboard/can-read-in-dragstart-event.html [ Failure ]

webkit.org/b/102201 fast/dom/Window/open-window-min-size.html [ Failure ]

# Regression(r142112): Several compositing tests started failing.
webkit.org/b/109431 compositing/iframes/iframe-composited-scrolling.html [ Failure ]

# New test introduced in r143073 that never passed on WK2 EFL.
webkit.org/b/110054 compositing/geometry/limit-layer-bounds-fixed.html [ Failure ]

# Several new Khronos WebGL conformance tests are failing on WK2 EFL.
webkit.org/b/109435 webgl/conformance/context/premultiplyalpha-test.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/extensions/oes-texture-float-with-video.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/extensions/oes-texture-float.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/texture-size-cube-maps.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/context/context-creation-and-destruction.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-sin.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-smoothstep-float.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/literals/float_literal.vert.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/misc/shaders-with-varyings.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/readPixelsBadArgs.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/texImage2DHTML.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/texSubImage2DHTML.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/renderbuffers/framebuffer-object-attachment.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/rendering/multisample-corruption.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/rendering/point-size.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/copy-tex-image-2d-formats.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video.html [ Failure Crash ]

# Failing media query test.
webkit.org/b/114916 fast/media/mq-resolution.html [ Failure ]

# New test introduced in r148672 that fails on EFL WK2.
webkit.org/b/114917 fast/events/touch/frame-hover-update.html [ Failure Crash ]

# Regression(r148748).
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing-add-text.html [ ImageOnlyFailure Crash ]
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing-change.html [ ImageOnlyFailure Crash ]
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing.html [ ImageOnlyFailure Crash ]

compositing/patterns/direct-pattern-compositing-load.html [ ImageOnlyFailure Pass ]

# Websocket tests are flaky on WK2
webkit.org/b/111976 http/tests/websocket [ Crash Pass Failure ]

# Most probably failures are result of delay in scrolling caused by 'delegated scrolling' usage.
webkit.org/b/107286 fast/css/sticky/sticky-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-vertical-lr.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-overflowing.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-left.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-as-positioning-container.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-left-percentage.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-vertical-rl.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-stacking-context.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/inflow-sticky.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top-zoomed.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-both-sides.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-horizontal-bt.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-side-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/replaced-sticky.html [ ImageOnlyFailure ]

# New ruby selection test (in r140613) fails to render correctly, not generating an expected result
webkit.org/b/108315 fast/ruby/select-ruby.html [ Missing ]

# failing after r149292
compositing/layer-creation/no-compositing-for-sticky.html [ Failure ]
compositing/repaint/resize-repaint.html [ Failure ]

compositing/layer-creation/deep-tree.html [ ImageOnlyFailure ]

compositing/iframes/invisible-nested-iframe-show.html [ Missing ]
compositing/tiling/huge-layer-add-remove-child.html [ Missing ]
compositing/tiling/rotated-tiled-clamped.html [ Missing ]
compositing/tiling/rotated-tiled-preserve3d-clamped.html [ Missing ]

# Failing after r142758.
webkit.org/b/109948 fast/dom/Window/mozilla-focus-blur.html [ Failure Pass ]

webkit.org/b/119789 fast/events/touch/frame-hover-update.html [ Crash ]
webkit.org/b/119789 fast/events/touch/multi-touch-inside-iframes.html [ Crash ]
webkit.org/b/119789 fast/events/touch/multi-touch-inside-nested-iframes.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-before-pressing-spin-button.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-coords-in-zoom-and-scroll.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-inside-iframe.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash Pass ]

# WKTR / Do not support setViewModeMediaFeature().
Bug(EFL) fast/media/view-mode-media-feature.html [ ImageOnlyFailure ]
Bug(EFL) fast/media/media-query-list-02.html [ Failure ]
Bug(EFL) fast/media/media-query-list-03.html [ Failure ]
Bug(EFL) fast/media/media-query-list-04.html [ Failure ]
Bug(EFL) fast/media/media-query-list-05.html [ Failure ]
Bug(EFL) fast/media/media-query-list-06.html [ Failure ]

