<!DOCTYPE html>
<html><head>
    <title>CSS Test: Left and right float with shape-outside</title>
    <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
    <link href="http://www.w3.org/TR/css-shapes-1/#relation-to-box-model-and-float-behavior" rel="help">
    <link href="http://www.w3.org/TR/css-shapes-1/#supported-basic-shapes" rel="help">
    <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
    <link href="reference/shape-outside-001-ref.htm" rel="match">
    <meta content="ahem" name="flags">
    <meta content="This test verifies that left floats with a shape-outside 
     only allow content wrapping on the right side, and right floats only allow wrapping on
     the left." name="assert">
    <!-- This test is derived from Example 1 in this version of the spec:
         http://www.w3.org/TR/2013/WD-css-shapes-1-20131203/ -->
    <style type="text/css">
        body {
            margin-left: 0;
        }
        .container {
          width: 400px;
          text-align: center;
          font-family: Ahem;
          font-size: 20px;
          line-height: 1em;
        }
        #test {
            color: green;
        }
        #test-float-left {
          shape-outside: polygon(0 0, 200px 200px, 0 200px);
          float: left;
          width: 200px;
          height: 200px;
        }
        #test-float-right {
          shape-outside: polygon(200px 0, 200px 200px, 0 200px);
          float: right;
          width: 200px;
          height: 200px;
        }
        #failure-container {
            color: red;
            z-index: -1;
        }
        #test, #failure-container {
            position: absolute;
            top: 60px;
        }
        .line {
            height: 20px;
        }
        #bottom {
            position: absolute;
            top: 200px;
        }
        #left-triangle, #right-triangle {
            position: absolute;
            top: 60px;
            width: 200px;
            height: 200px;
            background-color: lightblue;
        }
        #left-triangle {
            clip-path: polygon(0 0, 200px 200px, 0 200px);
        }
        #right-triangle {
            left: 200px;
            clip-path: polygon(200px 0, 200px 200px, 0 200px);
        }
    </style>
</head>
<body>
    <p>
        The test passes if the green shape does not intersect either of the triangles and
        there is one green horizontal bar beneath the triangles. There should be no red.
    </p>    
    <div class="container" id="test">
        <div id="test-float-left"></div>
        <div id="test-float-right"></div>
        XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXX
        XXXXXXXXXXX XXXXXXXXX XXXXXXX XXXXX XXX X
        XXXXXXXXXXXXXXXXX
    </div>
    <div id="failure-container">
       <div class="line container">XXXXXXXXXXXXXXXXX</div>
       <div class="line container">XXXXXXXXXXXXXXX</div>
       <div class="line container">XXXXXXXXXXXXX</div>
       <div class="line container">XXXXXXXXXXX</div>
       <div class="line container">XXXXXXXXX</div>
       <div class="line container">XXXXXXX</div>
       <div class="line container">XXXXX</div>
       <div class="line container">XXX</div>
       <div class="line container">X</div>
       <div id="bottom" class="line container">XXXXXXXXXXXXXXXXX</div>
    </div>
    <div id="left-triangle"></div>
    <div id="right-triangle"></div>

</body></html>