diff --git a/screenfull/screenfull-tests.ts b/screenfull/screenfull-tests.ts
new file mode 100644
index 000000000..b4cc17421
--- /dev/null
+++ b/screenfull/screenfull-tests.ts
@@ -0,0 +1,62 @@
+///
+
+function test_fullscreen_page() {
+ if (screenfull.enabled) {
+ screenfull.request();
+ }
+}
+
+function test_fullscreen_element() {
+ var elem = document.getElementById('target');
+ if (screenfull.enabled) {
+ screenfull.request(elem);
+ }
+}
+
+function test_toggle() {
+ var elem = document.getElementById('target');
+ if (screenfull.enabled) {
+ screenfull.toggle(elem);
+ }
+}
+
+function test_exit() {
+ if (screenfull.enabled) {
+ screenfull.request();
+ }
+ document.getElementById('target').addEventListener('click', function () {
+ if (screenfull.enabled) {
+ screenfull.exit();
+ }
+ })
+}
+
+function test_detect_change() {
+ if (screenfull.enabled) {
+ document.addEventListener(screenfull.raw.fullscreenchange, function () {
+ if (screenfull.isFullscreen) {
+ console.log('fullscreen');
+ } else {
+ console.log('not fullscreen');
+ }
+ });
+ }
+}
+
+function test_detect_error() {
+ if (screenfull.enabled) {
+ document.addEventListener(screenfull.raw.fullscreenerror, function (event) {
+ console.error('Failed to enable fullscreen', event);
+ });
+ }
+}
+
+function test_access_element() {
+ var elem = document.getElementById('target');
+ if (screenfull.enabled) {
+ screenfull.request(elem);
+ if (elem !== screenfull.element) {
+ alert('incorrect element property');
+ }
+ }
+}
diff --git a/screenfull/screenfull.d.ts b/screenfull/screenfull.d.ts
new file mode 100644
index 000000000..2e5e78deb
--- /dev/null
+++ b/screenfull/screenfull.d.ts
@@ -0,0 +1,26 @@
+// Type definitions for screenfull.js 2.0.0
+// Project: https://github.com/sindresorhus/screenfull.js
+// Definitions by: Ilia Choly
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+declare var screenfull: IScreenfull;
+
+interface IScreenfullRaw {
+ requestFullscreen?: string;
+ exitFullscreen?: string;
+ fullscreenElement?: string;
+ fullscreenEnabled?: string;
+ fullscreenchange?: string;
+ fullscreenerror?: string;
+}
+
+interface IScreenfull {
+ isFullscreen: boolean;
+ element: Element;
+ enabled: boolean;
+ raw: IScreenfullRaw;
+ request(elem?: Element): void;
+ toggle(elem?: Element): void;
+ exit(): void;
+}