--- /dev/null
+'use strict'
+/*jshint asi: true, browser: true*/
+/*global define window */
+
+var test = require('tap').test
+ , util = require('util')
+ , redeyedExport = require('..')
+ , redeyedkey = require.resolve('..')
+ , esprima = require('esprima')
+
+function setup() {
+ // remove redeyed from require cache to force re-require for each test
+ delete require.cache[redeyedkey];
+
+ // remove globals
+ delete global.window;
+ delete global.define;
+}
+
+// TODO: need to run in vm in order to properly simulate require and module not being present
+return;
+test('define and window exist', function (t) {
+ var defineCb
+ , deps
+
+ setup()
+
+ // declare browser globals
+ global.window = { }
+
+ global.define = function (deps_, cb) {
+ deps_ = deps
+ defineCb = cb
+ }
+
+ define.amd = true
+
+ var redeyed = require('..')
+ , definedredeyed = defineCb(esprima)
+
+ t.equal(window.redeyed, undefined, 'redeyed is not attached to window')
+ t.notEqual(redeyed.toString(), redeyedExport.toString(), 'redeyed is not exported')
+ t.equal(definedredeyed.toString(), redeyedExport.toString(), 'redeyed is defined')
+
+ t.end()
+})
+
+test('window exists, but define doesn\'t', function (t) {
+ setup()
+
+ // declare browser globals
+ global.window = { esprima: esprima }
+
+ var redeyed = require('..')
+
+ t.equal(window.redeyed.toString(), redeyedExport.toString(), 'redeyed is attached to window')
+ t.notEqual(redeyed.toString(), redeyedExport.toString(), 'redeyed is not exported')
+ t.end()
+})
+
+test('neither window nor define exist', function (t) {
+ setup()
+
+ var redeyed = require('..')
+
+ t.equal(redeyed.toString(), redeyedExport.toString(), 'redeyed is exported')
+ t.end()
+})
+