Test existance of extracted stylesheets

This commit is contained in:
Ben Zörb 2018-04-18 05:57:25 +02:00
parent b6bd8e8c0c
commit a3e33fcd2b
3 changed files with 80 additions and 6922 deletions

View File

@ -0,0 +1,64 @@
<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<title>critical css test</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
<!-- build:css styles/main.css -->
<style>
body{padding-top:20px;padding-bottom:20px}.header{padding-left:15px;padding-right:15px}.header{border-bottom:1px solid #e5e5e5}.header h3{margin-top:0;margin-bottom:0;line-height:40px;padding-bottom:19px}.jumbotron{text-align:center;border-bottom:1px solid #e5e5e5}.jumbotron .btn{font-size:21px;padding:14px 24px}@media screen and (min-width:768px){.container{max-width:730px}.header{padding-left:0;padding-right:0}.header{margin-bottom:30px}.jumbotron{border-bottom:0}}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:0 0}h1{margin:.67em 0;font-size:2em}@media print{*{color:#000!important;text-shadow:none!important;background:0 0!important;box-shadow:none!important}a{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after{content:""}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}a{color:#428bca;text-decoration:none}h1,h3{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,h3{margin-top:20px;margin-bottom:10px}h1{font-size:36px}h3{font-size:24px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.text-muted{color:#999}ul{margin-top:0;margin-bottom:10px}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a{color:#fff;background-color:#428bca}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.container:after,.container:before,.nav:after,.nav:before{display:table;content:" "}.container:after,.nav:after{clear:both}.pull-right{float:right!important}
</style>
<link rel="preload" href="css/cartoon.c2b80bd6.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="css/cartoon.c2b80bd6.css"></noscript>
<link rel="preload" href="bower_components/bootstrap/dist/css/bootstrap.fe278701.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.fe278701.css"></noscript>
<script>!function(n){"use strict";n.loadCSS||(n.loadCSS=function(){});var o=loadCSS.relpreload={};if(o.support=function(){var e;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),o.bindMediaToggle=function(t){var e=t.media||"all";function a(){t.media=e}t.addEventListener?t.addEventListener("load",a):t.attachEvent&&t.attachEvent("onload",a),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(a,3e3)},o.poly=function(){if(!o.support())for(var t=n.document.getElementsByTagName("link"),e=0;e<t.length;e++){var a=t[e];"preload"!==a.rel||"style"!==a.getAttribute("as")||a.getAttribute("data-loadcss")||(a.setAttribute("data-loadcss",!0),o.bindMediaToggle(a))}},!o.support()){o.poly();var t=n.setInterval(o.poly,500);n.addEventListener?n.addEventListener("load",function(){o.poly(),n.clearInterval(t)}):n.attachEvent&&n.attachEvent("onload",function(){o.poly(),n.clearInterval(t)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:n.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>
<!-- endbuild -->
</head>
<body>
<!--[if lt IE 10]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade
your browser</a> to improve your experience.</p>
<![endif]-->
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<h3 class="text-muted">critical css test</h3>
</div>
<div class="jumbotron">
<h1>'Allo, 'Allo!</h1>
<p class="lead">Always a pleasure scaffolding your apps.</p>
<p><a class="btn btn-lg btn-success" href="#">Splendid!</a></p>
</div>
<div class="row marketing">
<div class="col-lg-6">
<h4>HTML5 Boilerplate</h4>
<p>HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or
sites.</p>
<h4>Bootstrap</h4>
<p>Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.</p>
</div>
</div>
<div class="footer">
<p>♥ from the Yeoman team</p>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -76,10 +76,13 @@ describe('Module: inline-critical', function () {
var expectedHtml = read('test/expected/cartoon-expected.html'); var expectedHtml = read('test/expected/cartoon-expected.html');
var out = inlineCritical(html, css, {minify: false, extract: true, basePath: 'test/fixtures'}); var out = inlineCritical(html, css, {minify: false, extract: true, basePath: 'test/fixtures'});
expect(fs.existsSync('test/fixtures/css/cartoon.18d89c7f.css')).to.be.equal(true);
expect(fs.existsSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.d561412a.css')).to.be.equal(true);
expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected); expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected);
expect(strip(out.toString('utf-8'))).to.be.equal(strip(expectedHtml)); expect(strip(out.toString('utf-8'))).to.be.equal(strip(expectedHtml));
fs.unlinkSync('test/fixtures/css/cartoon.18d89c7f.css');
fs.unlinkSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.d561412a.css');
done(); done();
}); });
@ -88,10 +91,17 @@ describe('Module: inline-critical', function () {
var html = read('test/fixtures/cartoon.html'); var html = read('test/fixtures/cartoon.html');
var css = read('test/fixtures/critical.css'); var css = read('test/fixtures/critical.css');
var expected = read('test/expected/cartoon-expected-minified.css'); var expected = read('test/expected/cartoon-expected-minified.css');
var expectedHtml = read('test/expected/cartoon-expected-minified.html');
var out = inlineCritical(html, css, {minify: true, extract: true, basePath: 'test/fixtures'}); var out = inlineCritical(html, css, {minify: true, extract: true, basePath: 'test/fixtures'});
expect(fs.existsSync('test/fixtures/css/cartoon.c2b80bd6.css')).to.be.equal(true);
expect(fs.existsSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.fe278701.css')).to.be.equal(true);
expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected); expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected);
expect(strip(out.toString('utf-8'))).to.be.equal(strip(expectedHtml));
fs.unlinkSync('test/fixtures/css/cartoon.c2b80bd6.css');
fs.unlinkSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.fe278701.css');
done(); done();
}); });
@ -104,9 +114,14 @@ describe('Module: inline-critical', function () {
var out = inlineCritical(html, css, {minify: false, extract: true, basePath: 'test/fixtures'}); var out = inlineCritical(html, css, {minify: false, extract: true, basePath: 'test/fixtures'});
expect(fs.existsSync('test/fixtures/css/cartoon.18d89c7f.css')).to.be.equal(true);
expect(fs.existsSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.d561412a.css')).to.be.equal(true);
expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected); expect(read(reaver.rev('test/fixtures/css/cartoon.css', expected))).to.be.equal(expected);
expect(strip(out.toString('utf-8'))).to.be.equal(strip(expectedHtml)); expect(strip(out.toString('utf-8'))).to.be.equal(strip(expectedHtml));
fs.unlinkSync('test/fixtures/css/cartoon.18d89c7f.css');
fs.unlinkSync('test/fixtures/bower_components/bootstrap/dist/css/bootstrap.d561412a.css');
done(); done();
}); });