Quelle generate-object-fit-xul-tests.sh
Sprache: Shell
#!/bin/bash # # Any copyright is dedicated to the Public Domain. # http://creativecommons.org/publicdomain/zero/1.0/ # # Script to generate XUL <image> reftest files, from corresponding reftest # files that use <img>. # # This script expects to be run from this working directory: # mozilla-central/layout/reftests/w3c-css/submitted/images3
# Add comment to reftest.list in dest directory:
reftestListFileName="$XUL_REFTEST_PATH/reftest.list" echo" # Tests for XUL <image> with 'object-fit' & 'object-position': # These tests should be very similar to tests in our w3c-css/submitted/images3 # reftest directory. They live here because they use XUL, and it # wouldn't be fair of us to make a W3C testsuite implicitly depend on XUL."\
>> $reftestListFileName
# Loop across all object-fit tests that use <img> ("i" suffix): for origTestName in object-fit*i.html; do
newTestName=$(echo $origTestName |
sed "s/i.html/.xul/")
# Find the corresponding reference case:
referenceName=$(echo $origTestName |
sed "s/i.html/-ref.html/")
# Generate reference file (dropping "support" subdir from image paths): echo"Copying $referenceName to $XUL_REFTEST_PATH."
newReferenceFullPath=$XUL_REFTEST_PATH/$referenceName
hg cp $referenceName $newReferenceFullPath
sed -i "s,support/,," $newReferenceFullPath
# Generate testcase # (converting <video poster="support/foo.png"> to <video src="foo.webm">): echo"Generating $newTestName from $origTestName."
newTestFullPath=$XUL_REFTEST_PATH/$newTestName
hg cp $origTestName $newTestFullPath
# Replace doctype with XML decl:
sed -i "s//1.0\"?>/" $newTestFullPath
# Delete a bunch of HTML (not XUL) / W3C-testsuite boilerplate:
sed -i "/head>/d" $newTestFullPath # Delete head open & close tags
sed -i "/body>/d" $newTestFullPath # Delete body open & close tags
sed -i "/ $newTestFullPath # Delete meta charset tag
sed -i "/ $newTestFullPath # Delete title line
sed -i "/ $newTestFullPath # Delete link tags
# Add 4px to all sizes, since in XUL, sizes are for border-box # instead of content-box.
sed -i "s/ 48px/ 52px/" $newTestFullPath
sed -i "s/ 32px/ 36px/" $newTestFullPath
sed -i "s/ 8px/ 12px/" $newTestFullPath
# Fix style open/close tags, and add 8px of padding on outer <window> to # match our HTML reference case, and change style rule to target <image>:
sed -i "s, ,]]>," $newTestFullPath
sed -i "s/img {/image {/" $newTestFullPath
sed -i "s,support/,," $newTestFullPath
sed -i "s,,," $newTestFullPath
sed -i "s,