| OLD | NEW | 
|    1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |    1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 
|    2 <html> |    2 <html> | 
|    3 <head> |    3 <head> | 
|    4 <link href="resources/grid.css" rel="stylesheet"> |    4 <link href="resources/grid.css" rel="stylesheet"> | 
|    5 <style> |    5 <style> | 
|    6 #gridTemplateWithNone { |    6 #gridTemplateWithNone { | 
|    7     grid-template: none; |    7     grid-template: none; | 
|    8 } |    8 } | 
|    9 #gridTemplateSimpleForm { |    9 #gridTemplateSimpleForm { | 
|   10     grid-template: 10px / 15px; |   10     grid-template: 10px / 15px; | 
|   11 } |   11 } | 
|   12 #gridTemplateSimpleFormWithNoneColumns { |   12 #gridTemplateSimpleFormWithNoneColumns { | 
|   13     grid-template: none / 15px; |   13     grid-template: none / 15px; | 
|   14 } |   14 } | 
|   15 #gridTemplateSimpleFormWithNoneRows { |   15 #gridTemplateSimpleFormWithNoneRows { | 
|   16     grid-template: 10px / none; |   16     grid-template: 10px / none; | 
|   17 } |   17 } | 
|   18 #gridTemplateSimpleFormWithNone { |   18 #gridTemplateSimpleFormWithNone { | 
|   19     grid-template: none / none; |   19     grid-template: none / none; | 
|   20 } |   20 } | 
|   21 #gridTemplateComplexForm { |   21 #gridTemplateComplexForm { | 
|   22     grid-template: 10px / "a" 15px; |   22     grid-template: 10px / "a" 15px; | 
|   23 } |   23 } | 
|   24 #gridTemplateComplexFormWithLineNames { |   24 #gridTemplateComplexFormWithLineNames { | 
|   25     grid-template: 10px / (head) "a" 15px (tail); |   25     grid-template: 10px / [head] "a" 15px [tail]; | 
|   26 } |   26 } | 
|   27 #gridTemplateComplexFormWithLineNamesMultipleColumns { |   27 #gridTemplateComplexFormWithLineNamesMultipleColumns { | 
|   28     grid-template: 10px / (head) "a b" 15px (tail) |   28     grid-template: 10px / [head] "a b" 15px [tail] | 
|   29 } |   29 } | 
|   30 #gridTemplateComplexFormWithLineNamesMultipleRows { |   30 #gridTemplateComplexFormWithLineNamesMultipleRows { | 
|   31     grid-template: 10px / (head1) "a" 15px (tail1) |   31     grid-template: 10px / [head1] "a" 15px [tail1] | 
|   32                           (head2) "b" 20px (tail2); |   32                           [head2] "b" 20px [tail2]; | 
|   33 } |   33 } | 
|   34 #gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns { |   34 #gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns { | 
|   35     grid-template: (first) 10px repeat(2, (nav nav2) 15px) /       "a b c" 100px
      (nav) |   35     grid-template: [first] 10px repeat(2, [nav nav2] 15px) /       "a b c" 100px
      [nav] | 
|   36                                                             (nav2) "d e f" 25px 
      (nav) |   36                                                             [nav2] "d e f" 25px 
      [nav] | 
|   37                                                             (nav2) "g h i" 25px 
      (last); |   37                                                             [nav2] "g h i" 25px 
      [last]; | 
|   38 } |   38 } | 
|   39 #gridTemplateComplexFormWithAuto { |   39 #gridTemplateComplexFormWithAuto { | 
|   40     grid-template: 10px / "a"; |   40     grid-template: 10px / "a"; | 
|   41 } |   41 } | 
|   42 #gridTemplateComplexFormOnlyAreas { |   42 #gridTemplateComplexFormOnlyAreas { | 
|   43     grid-template: "a"; |   43     grid-template: "a"; | 
|   44 } |   44 } | 
|   45 #gridTemplateNoColumnsRowWithEmptyTrailingLineNames { |   45 #gridTemplateNoColumnsRowWithEmptyTrailingLineNames { | 
|   46     grid-template: (first) "a" auto (); |   46     grid-template: [first] "a" auto []; | 
|   47 } |   47 } | 
|   48  |   48  | 
|   49 /* Bad values. */ |   49 /* Bad values. */ | 
|   50  |   50  | 
|   51 #gridTemplateMultipleSlash { |   51 #gridTemplateMultipleSlash { | 
|   52     grid-template: 10px / 20px / 30px; |   52     grid-template: 10px / 20px / 30px; | 
|   53 } |   53 } | 
|   54 #gridTemplateSimpleFormJustColumns { |   54 #gridTemplateSimpleFormJustColumns { | 
|   55     grid-template: 10px; |   55     grid-template: 10px; | 
|   56 } |   56 } | 
|   57 #gridTemplateSimpleFormNoRows { |   57 #gridTemplateSimpleFormNoRows { | 
|   58     grid-template: 10px /; |   58     grid-template: 10px /; | 
|   59 } |   59 } | 
|   60 #gridTemplateSimpleFormNoColumns { |   60 #gridTemplateSimpleFormNoColumns { | 
|   61     grid-template: / 10px; |   61     grid-template: / 10px; | 
|   62 } |   62 } | 
|   63 #gridTemplateSimpleFormNoColumnSize { |   63 #gridTemplateSimpleFormNoColumnSize { | 
|   64     grid-template: (line) / 10px; |   64     grid-template: [line] / 10px; | 
|   65 } |   65 } | 
|   66 #gridTemplateSimpleFormWithFitContent { |   66 #gridTemplateSimpleFormWithFitContent { | 
|   67     grid-template: -webkit-fit-content / 10px; |   67     grid-template: -webkit-fit-content / 10px; | 
|   68 } |   68 } | 
|   69 #gridTemplateSimpleFormWithWrongRepeat { |   69 #gridTemplateSimpleFormWithWrongRepeat { | 
|   70     grid-template: repeat(2, 50% (title) a) / 10px; |   70     grid-template: repeat(2, 50% [title] a) / 10px; | 
|   71 } |   71 } | 
|   72 #gridTemplateSimpleFormWithMisplacedNone1 { |   72 #gridTemplateSimpleFormWithMisplacedNone1 { | 
|   73     grid-template: 10px / none 20px; |   73     grid-template: 10px / none 20px; | 
|   74 } |   74 } | 
|   75 #gridTemplateSimpleFormWithMisplacedNone2 { |   75 #gridTemplateSimpleFormWithMisplacedNone2 { | 
|   76     grid-template: 10px / 20px none; |   76     grid-template: 10px / 20px none; | 
|   77 } |   77 } | 
|   78 #gridTemplateSimpleFormWithMisplacedNone3 { |   78 #gridTemplateSimpleFormWithMisplacedNone3 { | 
|   79     grid-template: none 10px / 20px; |   79     grid-template: none 10px / 20px; | 
|   80 } |   80 } | 
|   81 #gridTemplateSimpleFormWithMisplacedNone4 { |   81 #gridTemplateSimpleFormWithMisplacedNone4 { | 
|   82     grid-template: 10px none / 20px; |   82     grid-template: 10px none / 20px; | 
|   83 } |   83 } | 
|   84 #gridTemplateComplexFormWithRepeat { |   84 #gridTemplateComplexFormWithRepeat { | 
|   85     grid-template: 10px / "a" repeat(2, 50% (title)); |   85     grid-template: 10px / "a" repeat(2, 50% [title]); | 
|   86 } |   86 } | 
|   87 #gridTemplateComplexFormWithWrongRepeat { |   87 #gridTemplateComplexFormWithWrongRepeat { | 
|   88     grid-template: repeat(2, 50% (title) a) / "a"; |   88     grid-template: repeat(2, 50% [title] a) / "a"; | 
|   89 } |   89 } | 
|   90 #griTemplateComplexFormdWithFitAvailable { |   90 #griTemplateComplexFormdWithFitAvailable { | 
|   91     grid-template: -webkit-fit-available / "a"; |   91     grid-template: -webkit-fit-available / "a"; | 
|   92 } |   92 } | 
|   93 #gridTemplateComplexFormNoColumnSize { |   93 #gridTemplateComplexFormNoColumnSize { | 
|   94     grid-template: (line) / "a"; |   94     grid-template: [line] / "a"; | 
|   95 } |   95 } | 
|   96 #gridTemplateComplexFormMisplacedRowsSize1 { |   96 #gridTemplateComplexFormMisplacedRowsSize1 { | 
|   97     grid-template: 25px / 10px "a"; |   97     grid-template: 25px / 10px "a"; | 
|   98 } |   98 } | 
|   99 #gridTemplateComplexFormMisplacedRowsSize2 { |   99 #gridTemplateComplexFormMisplacedRowsSize2 { | 
|  100     grid-template: 25px / "a" (name) 10px; |  100     grid-template: 25px / "a" [name] 10px; | 
|  101 } |  101 } | 
|  102 #gridTemplateComplexFormColumnsNotParsing1 { |  102 #gridTemplateComplexFormColumnsNotParsing1 { | 
|  103     grid-template: a / "a" (name) 10px; |  103     grid-template: a / "a" [name] 10px; | 
|  104 } |  104 } | 
|  105 #gridTemplateComplexFormColumnsNotParsing2 { |  105 #gridTemplateComplexFormColumnsNotParsing2 { | 
|  106     grid-template: "B" / "a" (name) 10px; |  106     grid-template: "B" / "a" [name] 10px; | 
|  107 } |  107 } | 
|  108 #gridTemplateComplexFormWithNoneColumns { |  108 #gridTemplateComplexFormWithNoneColumns { | 
|  109     grid-template: none / "a" (name) 10px; |  109     grid-template: none / "a" [name] 10px; | 
|  110 } |  110 } | 
|  111 #gridTemplateNoColumnsRowWithTwoEmptyTrailingLineNames { |  111 #gridTemplateNoColumnsRowWithTwoEmptyTrailingLineNames { | 
|  112     grid-template: (first) "a" auto () (); |  112     grid-template: [first] "a" auto [] []; | 
|  113 } |  113 } | 
|  114 #gridTemplateNoColumnsRowWithEmptyTrailingLineNamesAndNonEmptyLeadingLineNames { |  114 #gridTemplateNoColumnsRowWithEmptyTrailingLineNamesAndNonEmptyLeadingLineNames { | 
|  115     grid-template: (first) "a" auto () (tail); |  115     grid-template: [first] "a" auto [] [tail]; | 
|  116 } |  116 } | 
|  117  |  117  | 
|  118 </style> |  118 </style> | 
|  119 <script src="../../resources/js-test.js"></script> |  119 <script src="../../resources/js-test.js"></script> | 
|  120 </head> |  120 </head> | 
|  121 <body> |  121 <body> | 
|  122 <div class="grid" id="gridTemplateWithNone"></div> |  122 <div class="grid" id="gridTemplateWithNone"></div> | 
|  123 <div class="grid" id="gridTemplateSimpleForm"></div> |  123 <div class="grid" id="gridTemplateSimpleForm"></div> | 
|  124 <div class="grid" id="gridTemplateSimpleFormWithNoneColumns"></div> |  124 <div class="grid" id="gridTemplateSimpleFormWithNoneColumns"></div> | 
|  125 <div class="grid" id="gridTemplateSimpleFormWithNoneRows"></div> |  125 <div class="grid" id="gridTemplateSimpleFormWithNoneRows"></div> | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  159 <script> |  159 <script> | 
|  160     description("This test checks that the 'grid-template' shorthand is properly
      parsed and the longhand properties correctly assigned."); |  160     description("This test checks that the 'grid-template' shorthand is properly
      parsed and the longhand properties correctly assigned."); | 
|  161  |  161  | 
|  162     debug("Test getting grid-template-areas set through CSS."); |  162     debug("Test getting grid-template-areas set through CSS."); | 
|  163     testGridDefinitionsValues(document.getElementById("gridTemplateWithNone"), "
     none", "none", "none"); |  163     testGridDefinitionsValues(document.getElementById("gridTemplateWithNone"), "
     none", "none", "none"); | 
|  164     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleForm"),
      "10px", "15px", "none"); |  164     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleForm"),
      "10px", "15px", "none"); | 
|  165     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNoneColumns"), "none", "15px", "none"); |  165     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNoneColumns"), "none", "15px", "none"); | 
|  166     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNoneRows"), "10px", "none", "none"); |  166     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNoneRows"), "10px", "none", "none"); | 
|  167     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNone"), "none", "none", "none"); |  167     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hNone"), "none", "none", "none"); | 
|  168     testGridDefinitionsValues(document.getElementById("gridTemplateComplexForm")
     , "10px", "15px", '"a"'); |  168     testGridDefinitionsValues(document.getElementById("gridTemplateComplexForm")
     , "10px", "15px", '"a"'); | 
|  169     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNames"), "10px", "(head) 15px (tail)", '"a"'); |  169     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNames"), "10px", "[head] 15px [tail]", '"a"'); | 
|  170     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleColumns"), "10px", "(head) 15px (tail)", '"a b"'); |  170     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleColumns"), "10px", "[head] 15px [tail]", '"a b"'); | 
|  171     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleRows"), "10px", "(head1) 15px (tail1 head2) 20px (tail2)", '"
     a" "b"'); |  171     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleRows"), "10px", "[head1] 15px [tail1 head2] 20px [tail2]", '"
     a" "b"'); | 
|  172     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleRowsAndColumns"), "(first) 10px (nav nav2) 15px (nav nav2) 15
     px", "100px (nav nav2) 25px (nav nav2) 25px (last)", '"a b c" "d e f" "g h i"'); |  172     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thLineNamesMultipleRowsAndColumns"), "[first] 10px [nav nav2] 15px [nav nav2] 15
     px", "100px [nav nav2] 25px [nav nav2] 25px [last]", '"a b c" "d e f" "g h i"'); | 
|  173     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thAuto"), "10px", "0px", '"a"'); |  173     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
     thAuto"), "10px", "0px", '"a"'); | 
|  174     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormOn
     lyAreas"), "none", "0px", '"a"'); |  174     testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormOn
     lyAreas"), "none", "0px", '"a"'); | 
|  175     testGridDefinitionsValues(document.getElementById("gridTemplateNoColumnsRowW
     ithEmptyTrailingLineNames"), "none", "(first) 0px", '"a"'); |  175     testGridDefinitionsValues(document.getElementById("gridTemplateNoColumnsRowW
     ithEmptyTrailingLineNames"), "none", "[first] 0px", '"a"'); | 
|  176  |  176  | 
|  177     debug(""); |  177     debug(""); | 
|  178     debug("Test getting wrong values for grid-template shorthand through CSS (th
     ey should resolve to the default: 'none')"); |  178     debug("Test getting wrong values for grid-template shorthand through CSS (th
     ey should resolve to the default: 'none')"); | 
|  179     testGridDefinitionsValues(document.getElementById("gridTemplateMultipleSlash
     "), "none", "none", "none"); |  179     testGridDefinitionsValues(document.getElementById("gridTemplateMultipleSlash
     "), "none", "none", "none"); | 
|  180     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormJus
     tColumns"), "none", "none", "none"); |  180     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormJus
     tColumns"), "none", "none", "none"); | 
|  181     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoR
     ows"), "none", "none", "none"); |  181     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoR
     ows"), "none", "none", "none"); | 
|  182     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
     olumns"), "none", "none", "none"); |  182     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
     olumns"), "none", "none", "none"); | 
|  183     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
     olumnSize"), "none", "none", "none"); |  183     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
     olumnSize"), "none", "none", "none"); | 
|  184     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hFitContent"), "none", "none", "none"); |  184     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hFitContent"), "none", "none", "none"); | 
|  185     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hWrongRepeat"), "none", "none", "none"); |  185     testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
     hWrongRepeat"), "none", "none", "none"); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|  203     debug("Test the initial value"); |  203     debug("Test the initial value"); | 
|  204     var element = document.createElement("div"); |  204     var element = document.createElement("div"); | 
|  205     document.body.appendChild(element); |  205     document.body.appendChild(element); | 
|  206     testGridDefinitionsValues(element, "none", "none", "none"); |  206     testGridDefinitionsValues(element, "none", "none", "none"); | 
|  207     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-colu
     mns')", "'none'"); |  207     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-colu
     mns')", "'none'"); | 
|  208     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows
     ')", "'none'"); |  208     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows
     ')", "'none'"); | 
|  209     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-area
     s')", "'none'"); |  209     shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-area
     s')", "'none'"); | 
|  210  |  210  | 
|  211     debug(""); |  211     debug(""); | 
|  212     debug("Test setting grid-template-columns and grid-template-rows back to 'no
     ne' through JS"); |  212     debug("Test setting grid-template-columns and grid-template-rows back to 'no
     ne' through JS"); | 
|  213     testGridDefinitionsSetJSValues("10px / (line) 'a' 20px", "10px", "(line) 20p
     x", "\"a\""); |  213     testGridDefinitionsSetJSValues("10px / [line] 'a' 20px", "10px", "[line] 20p
     x", "\"a\""); | 
|  214     testGridDefinitionsSetJSValues("none", "none", "none", "none"); |  214     testGridDefinitionsSetJSValues("none", "none", "none", "none"); | 
|  215  |  215  | 
|  216     debug(""); |  216     debug(""); | 
|  217     debug("Test getting and setting grid-template shorthand through JS"); |  217     debug("Test getting and setting grid-template shorthand through JS"); | 
|  218     testGridDefinitionsSetJSValues("18px / 66px", "18px", "66px", "none"); |  218     testGridDefinitionsSetJSValues("18px / 66px", "18px", "66px", "none"); | 
|  219     testGridDefinitionsSetJSValues("10px / (head) 'a' 15px (tail)", "10px", "(he
     ad) 15px (tail)", "\"a\""); |  219     testGridDefinitionsSetJSValues("10px / [head] 'a' 15px [tail]", "10px", "[he
     ad] 15px [tail]", "\"a\""); | 
|  220     testGridDefinitionsSetJSValues("'a'", "none", "0px", "\"a\"", "none", "auto"
     ); |  220     testGridDefinitionsSetJSValues("'a'", "none", "0px", "\"a\"", "none", "auto"
     ); | 
|  221  |  221  | 
|  222     debug(""); |  222     debug(""); | 
|  223     debug("Test setting grid-template shorthand to bad values through JS"); |  223     debug("Test setting grid-template shorthand to bad values through JS"); | 
|  224     testGridDefinitionsSetBadJSValues("none / 'a'"); |  224     testGridDefinitionsSetBadJSValues("none / 'a'"); | 
|  225     testGridDefinitionsSetBadJSValues("25px / 'a' (name) 10px"); |  225     testGridDefinitionsSetBadJSValues("25px / 'a' [name] 10px"); | 
|  226     testGridDefinitionsSetBadJSValues("'a' / 'b'"); |  226     testGridDefinitionsSetBadJSValues("'a' / 'b'"); | 
|  227     testGridDefinitionsSetBadJSValues("15px"); |  227     testGridDefinitionsSetBadJSValues("15px"); | 
|  228     testGridDefinitionsSetBadJSValues("15px / 20px none"); |  228     testGridDefinitionsSetBadJSValues("15px / 20px none"); | 
|  229     testGridDefinitionsSetBadJSValues("25px / 10px 'a'"); |  229     testGridDefinitionsSetBadJSValues("25px / 10px 'a'"); | 
|  230  |  230  | 
|  231 </script> |  231 </script> | 
|  232 </body> |  232 </body> | 
|  233 </html> |  233 </html> | 
| OLD | NEW |