8
0
فهرست منبع

Added isRange DOM helper with tests.

Aleksander Nowodzinski 9 سال پیش
والد
کامیت
d9ff4ca059
2فایلهای تغییر یافته به همراه38 افزوده شده و 0 حذف شده
  1. 18 0
      packages/ckeditor5-utils/src/dom/isrange.js
  2. 20 0
      packages/ckeditor5-utils/tests/dom/isrange.js

+ 18 - 0
packages/ckeditor5-utils/src/dom/isrange.js

@@ -0,0 +1,18 @@
+/**
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module utils/dom/isrange
+ */
+
+/**
+ * Checks if the object is a native DOM Range.
+ *
+ * @param {*} obj
+ * @returns {Boolean}
+ */
+export default function isRange( obj ) {
+	return Object.prototype.toString.apply( obj ) == '[object Range]';
+}

+ 20 - 0
packages/ckeditor5-utils/tests/dom/isrange.js

@@ -0,0 +1,20 @@
+/**
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* global Range */
+
+import isRange from 'ckeditor5/utils/dom/isrange.js';
+
+describe( 'isRange()', () => {
+	it( 'detects native DOM Range', () => {
+		expect( isRange( new Range() ) ).to.be.true;
+
+		expect( isRange( {} ) ).to.be.false;
+		expect( isRange( null ) ).to.be.false;
+		expect( isRange( undefined ) ).to.be.false;
+		expect( isRange( new Date() ) ).to.be.false;
+		expect( isRange( 42 ) ).to.be.false;
+	} );
+} );