Index: lib/src/firebase-element/test/test-helpers.html |
diff --git a/lib/src/firebase-element/test/test-helpers.html b/lib/src/firebase-element/test/test-helpers.html |
index bfd28b074d885932ddf90170f7937b1212af453d..735137b2777c98c304c12d931f508e3ff9c59097 100644 |
--- a/lib/src/firebase-element/test/test-helpers.html |
+++ b/lib/src/firebase-element/test/test-helpers.html |
@@ -1,14 +1,82 @@ |
+<link rel="import" href="../../promise-polyfill/promise-polyfill.html"> |
<script> |
+ var firebaseTestProject = 'fb-element-demo'; |
+ |
function randomKey() { |
return (0|(Math.random() * 999999999)).toString(); |
} |
+ function randomInt(min, max) { |
+ min = min || 0; |
+ max = max || 10000; |
+ |
+ return Math.floor(Math.random() * (max - min)) + min; |
+ } |
+ |
+ function randomObject(min, max) { |
+ return { |
+ value: randomInt(min, max) |
+ }; |
+ } |
+ |
function waitForEvent(element, event) { |
return new Promise(function(resolve, reject) { |
element.addEventListener(event, function onEvent() { |
+ window.clearTimeout(timeout); |
element.removeEventListener(event, onEvent); |
resolve(); |
}); |
+ |
+ var timeout = window.setTimeout(function() { |
+ reject(new Error('Firebase response took more than 5 seconds.')); |
+ }, 5000); |
}); |
} |
+ |
+ function firebaseUrl(project, path) { |
+ return 'https://' + project + '.firebaseio.com' + (path ? '/' + path : ''); |
+ } |
+ |
+ function fixtureLocation(data) { |
+ var firebase = new Firebase(firebaseUrl(firebaseTestProject)); |
+ return firebaseUrl( |
+ firebaseTestProject, |
+ firebase.push(data || {}).key() |
+ ); |
+ } |
+ |
+ function removeLocation(location) { |
+ (new Firebase(location)).remove(); |
+ } |
+ |
+ function fixtureFirebase(fixtureName, data) { |
+ var firebase = fixture(fixtureName); |
+ firebase.location = fixtureLocation(data); |
+ return firebase; |
+ } |
+ |
+ function removeFirebase(firebase) { |
+ removeLocation(firebase.location); |
+ firebase.disconnect(); |
+ } |
+ |
+ function arrayOfPrimitives(length) { |
+ var array = []; |
+ |
+ for (var i = 0; i < length; ++i) { |
+ array.push(randomInt()); |
+ } |
+ |
+ return array; |
+ } |
+ |
+ function arrayOfObjects(length) { |
+ var array = []; |
+ |
+ for (var i = 0; i < length; ++i) { |
+ array.push(randomObject()); |
+ } |
+ |
+ return array; |
+ } |
</script> |