MDL-39212 css: we now chunk and no longer separate

This commit is contained in:
Sam Hemelryk
2013-06-28 16:49:02 +12:00
parent f0d37f4ac5
commit 1eb2b51703
4 changed files with 94 additions and 130 deletions
+8 -8
View File
@@ -1096,7 +1096,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a{}b{}', $chunks[0]);
$this->assertEquals('c{}d{}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne{}f{}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne{}f{}", $chunks[2]);
// Test with an odd number of styles.
$css = 'a{}b{}c{}d{}e{}';
@@ -1108,7 +1108,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a{}b{}', $chunks[0]);
$this->assertEquals('c{}d{}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne{}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne{}", $chunks[2]);
// Test buffering. Set a buffer that will reduce the effective sheet size back to two.
$css = 'a{}b{}c{}d{}e{}f{}';
@@ -1120,7 +1120,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a{}b{}', $chunks[0]);
$this->assertEquals('c{}d{}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne{}f{}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne{}f{}", $chunks[2]);
// Test well placed commas.
$css = 'a,b{}c,d{}e,f{}';
@@ -1132,7 +1132,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a,b{}', $chunks[0]);
$this->assertEquals('c,d{}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne,f{}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne,f{}", $chunks[2]);
// Test unfortunately placed commas.
$css = 'a{}b,c{color:red;}d{}e{}f{}';
@@ -1144,7 +1144,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a{}b{color:red;}', $chunks[0]);
$this->assertEquals('c{color:red;}d{}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne{}f{}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne{}f{}", $chunks[2]);
// Test unfortunate CSS.
$css = 'a,b,c,d,e,f{color:red;}';
@@ -1156,7 +1156,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a,b{color:red;}', $chunks[0]);
$this->assertEquals('c,d{color:red;}', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne,f{color:red;}", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne,f{color:red;}", $chunks[2]);
// Test to make sure invalid CSS isn't totally ruined.
$css = 'a{},,,e{},';
@@ -1168,7 +1168,7 @@ CSS;
$this->assertArrayHasKey(0, $chunks);
$this->assertArrayHasKey(1, $chunks);
$this->assertEquals('a{},{}', $chunks[0]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n,e{}/** Error chunking CSS **/", $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n,e{}/** Error chunking CSS **/", $chunks[1]);
// Test utter crap CSS to make sure we don't loop to our deaths.
$css = 'a,b,c,d,e,f';
@@ -1180,7 +1180,7 @@ CSS;
$this->assertArrayHasKey(2, $chunks);
$this->assertEquals('a,b/** Error chunking CSS **/', $chunks[0]);
$this->assertEquals('c,d/** Error chunking CSS **/', $chunks[1]);
$this->assertEquals("@import url(styles.php?type=test&chunk=0);\n@import url(styles.php?type=test&chunk=1);\ne,f", $chunks[2]);
$this->assertEquals("@import url(styles.php?type=test&chunk=1);\n@import url(styles.php?type=test&chunk=2);\ne,f", $chunks[2]);
// Test another death situation to make sure we're invincible.
$css = 'a,,,,,e';
$chunks = css_chunk_by_selector_count($css, 'styles.php?type=test', 2, 0);