8
0
Просмотр исходного кода

Tests: Util for browser detection added.

Krzysztof Krztoń 7 лет назад
Родитель
Сommit
70226026f5

+ 41 - 0
packages/ckeditor5-paste-from-office/tests/_utils/browser.js

@@ -0,0 +1,41 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* global navigator */
+
+/**
+ * Returns the name of the browser in which code is executed based on `window.navigator` object.
+ *
+ * @returns {String|null} Lowercase browser name or null if non-standard browser is used.
+ */
+export function getBrowserName() {
+	const browsers = detectBrowsers( navigator );
+
+	const browser = Object.keys( browsers ).filter( browserName => !!browsers[ browserName ] );
+
+	return browser.length ? browser[ 0 ] : null;
+}
+
+// Checks if current browser is one of the predefined ones (Chrome, Edge, Firefox, IE, Safari).
+//
+// @param {Navigator} navigator Browser `window.navigator` object on which detection is based.
+// @returns {{chrome: Boolean, edge: Boolean, firefox: Boolean, ie: Boolean, safari: Boolean}}
+function detectBrowsers( navigator ) {
+	const agent = navigator.userAgent.toLowerCase();
+	const edge = agent.match( /edge[ /](\d+.?\d*)/ );
+	const trident = agent.indexOf( 'trident/' ) > -1;
+	const ie = !!( edge || trident );
+	const webkit = !ie && ( agent.indexOf( ' applewebkit/' ) > -1 );
+	const gecko = navigator.product === 'Gecko' && !webkit && !ie;
+	const chrome = webkit && agent.indexOf( 'chrome' ) > -1;
+
+	return {
+		chrome,
+		edge: !!edge,
+		firefox: gecko,
+		ie,
+		safari: webkit && !chrome,
+	};
+}

+ 2 - 4
packages/ckeditor5-paste-from-office/tests/_utils/fixtures.js

@@ -3,6 +3,8 @@
  * For licensing, see LICENSE.md.
  */
 
+import { getBrowserName } from './browser';
+
 import { fixtures as basicStyles, browserFixtures as basicStylesBrowser } from '../_data/basic-styles/index.js';
 
 const fixtures = {
@@ -32,7 +34,3 @@ export function getFixtures( group ) {
 
 	return fixtures[ group ];
 }
-
-function getBrowserName() {
-	return null;
-}