diff --git a/examples/features.js b/examples/features.js new file mode 100644 index 00000000..3bbbe2bb --- /dev/null +++ b/examples/features.js @@ -0,0 +1,56 @@ +/** + * Copyright 2017 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var path = require('path'); +var Browser = require('../lib/Browser'); +var browser = new Browser(); + +browser.newPage().then(async page => { + var modernizrPath = path.join('..', 'third_party', 'phantomjs', 'examples', 'modernizr.js'); + await page.injectFile(modernizrPath); + page.on('Page.Events.ConsoleMessageAdded', console.log); + await page.evaluate(detectFeatures); + browser.close(); +}); + +function detectFeatures() { + var supported = [], unsupported = []; + console.log('Detected features (using Modernizr ' + Modernizr._version + '):'); + for (var feature in Modernizr) { + if (Modernizr.hasOwnProperty(feature)) { + if (feature[0] !== '_' && typeof Modernizr[feature] !== 'function' && + feature !== 'input' && feature !== 'inputtypes') { + if (Modernizr[feature]) { + supported.push(feature); + } else { + unsupported.push(feature); + } + } + } + } + + console.log(''); + console.log('Supported:'); + supported.forEach(function (e) { + console.log(' ' + e); + }); + + console.log(''); + console.log('Not supported:'); + unsupported.forEach(function (e) { + console.log(' ' + e); + }); +}