Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(843)

Unified Diff: polymer_1.0.4/bower_components/firebase-element/test/firebase-collection.html

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: polymer_1.0.4/bower_components/firebase-element/test/firebase-collection.html
diff --git a/polymer_1.0.4/bower_components/firebase-element/test/firebase-collection.html b/polymer_1.0.4/bower_components/firebase-element/test/firebase-collection.html
new file mode 100644
index 0000000000000000000000000000000000000000..9cc9c5f67f3845fa33ae486a7f1c5900a7dcb1dc
--- /dev/null
+++ b/polymer_1.0.4/bower_components/firebase-element/test/firebase-collection.html
@@ -0,0 +1,259 @@
+<!doctype html>
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<html>
+<head>
+ <title>firebase-collection</title>
+
+ <script src="../../webcomponentsjs/webcomponents.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+ <script src="../../test-fixture/test-fixture-mocha.js"></script>
+
+ <link rel="import" href="../../polymer/polymer.html">
+ <link rel="import" href="../../promise-polyfill/promise-polyfill.html">
+ <link rel="import" href="../../test-fixture/test-fixture.html">
+ <link rel="import" href="test-helpers.html">
+ <link rel="import" href="../firebase-collection.html">
+</head>
+<body>
+ <test-fixture id="TrivialCollection">
+ <template>
+ <firebase-collection
+ location="https://fb-element-demo.firebaseio.com/test/trivial"
+ log>
+ </firebase-collection>
+ </template>
+ </test-fixture>
+ <test-fixture id="PrimitiveCollection">
+ <template>
+ <firebase-collection
+ location="https://fb-element-demo.firebaseio.com/test/primitives"
+ order-by-value
+ log>
+ </firebase-collection>
+ </template>
+ </test-fixture>
+ <test-fixture id="ChangingChildren">
+ <template>
+ <firebase-collection
+ location="https://fb-element-demo.firebaseio.com/test/changing_children"
+ order-by-child="foo"
+ log>
+ </firebase-collection>
+ </template>
+ </test-fixture>
+
+ <test-fixture id="SyncingCollections">
+ <template>
+ <firebase-collection
+ location="https://fb-element-demo.firebaseio.com/test/syncing"
+ log>
+ </firebase-collection>
+ <firebase-collection
+ location="https://fb-element-demo.firebaseio.com/test/syncing"
+ order-by-child="foo"
+ log>
+ </firebase-collection>
+ </template>
+ </test-fixture>
+
+ <script>
+ suite('<firebase-document>', function() {
+ var firebase;
+
+ suite('basic usage', function() {
+ setup(function() {
+ firebase = fixture('TrivialCollection');
+ });
+
+ teardown(function() {
+ firebase.disconnect();
+ });
+
+ test('exposes data as an array', function(done) {
+ waitForEvent(firebase, 'firebase-child-added').then(function() {
+ expect(firebase.data).to.be.an('array');
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+
+ test('receives data from Firebase location', function(done) {
+ waitForEvent(firebase, 'data-changed').then(function() {
+ expect(firebase.data[0].value).to.be.equal(true);
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+ });
+
+ suite('ordered primitives', function() {
+ setup(function() {
+ firebase = fixture('PrimitiveCollection');
+ });
+
+ teardown(function() {
+ firebase.disconnect();
+ });
+
+ test('converts primitives into objects with a value key', function(done) {
+ waitForEvent(firebase, 'firebase-child-added').then(function() {
+ expect(firebase.data[0]).to.be.an('object');
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+
+ test('orders primitives by value', function(done) {
+ waitForEvent(firebase, 'firebase-value').then(function() {
+ var lastValue = -Infinity;
+ expect(firebase.data.length).to.be.greaterThan(0);
+ firebase.data.forEach(function(item) {
+ expect(item.value).to.not.be.lessThan(lastValue);
+ lastValue = item.value;
+ });
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+
+ suite('adding a value locally', function() {
+ setup(function(done) {
+ waitForEvent(firebase, 'firebase-value').then(function() {
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+
+ test('can be done with `add`', function(done) {
+ var length = firebase.data.length;
+ var newValue = firebase.data[firebase.data.length - 1].value + 1;
+ var key;
+
+ waitForEvent(firebase, 'firebase-child-added').then(function() {
+ expect(firebase.data.length).to.be.equal(length + 1);
+ expect(firebase.data[firebase.data.length - 1].value).to.be.equal(newValue);
+ done();
+ }).catch(function(e) {
+ done(e);
+ }).then(function() {
+ firebase.removeByKey(key);
+ });
+
+ key = firebase.add(newValue).key();
+ });
+ });
+ });
+
+ suite('a child changes', function() {
+ setup(function(done) {
+ firebase = fixture('ChangingChildren');
+ waitForEvent(firebase, 'firebase-value').then(function() {
+ done();
+ }).catch(function(e) {
+ done(e)
+ });
+ });
+
+ test('updates the child key in place with the new value', function(done) {
+ var childrenKeys = [];
+
+ waitForEvent(firebase, 'firebase-value').then(function() {
+ var middleValue = firebase.getByKey(childrenKeys[1]);
+ var changes;
+
+ expect(middleValue.foo).to.be.equal(1);
+ expect(middleValue.bar).to.be.equal(1);
+
+ changes = waitForEvent(firebase, 'firebase-child-changed');
+
+ firebase.set('data.' + firebase.data.indexOf(middleValue) + '.bar', 2);
+
+ return changes;
+ }).then(function() {
+ var middleValue = firebase.getByKey(childrenKeys[1]);
+
+ expect(middleValue.foo).to.be.equal(1);
+ expect(middleValue.bar).to.be.equal(2);
+
+ done();
+ }).catch(function(e) {
+ done(e);
+ }).then(function() {
+ childrenKeys.forEach(function(key) {
+ firebase.removeByKey(key);
+ });
+ });
+
+ childrenKeys = [0, 1, 2].map(function(value, index) {
+ return firebase.add({
+ foo: value,
+ bar: index
+ }).key();
+ });
+ });
+ });
+
+ suite('syncing collections', function() {
+ var localFirebase;
+ var remoteFirebase;
+
+ setup(function(done) {
+ firebase = fixture('SyncingCollections');
+ localFirebase = firebase[0];
+ remoteFirebase = firebase[1];
+ Promise.all([
+ waitForEvent(localFirebase, 'firebase-value'),
+ waitForEvent(remoteFirebase, 'firebase-value')
+ ]).then(function() {
+ done();
+ }).catch(function(e) {
+ done(e);
+ });
+ });
+
+ test('syncs a new item at the correct index', function(done) {
+ var data = {
+ foo: 100
+ };
+ var key;
+
+ waitForEvent(remoteFirebase, 'firebase-value').then(function() {
+ var value = remoteFirebase.getByKey(key);
+ var lowValue = remoteFirebase.getByKey('lowValue');
+ var highValue = remoteFirebase.getByKey('highValue');
+
+ var index = remoteFirebase.data.indexOf(value);
+ var lowIndex = remoteFirebase.data.indexOf(lowValue);
+ var highIndex = remoteFirebase.data.indexOf(highValue);
+
+ expect(value).to.be.okay;
+ expect(index).to.be.lessThan(highIndex);
+ expect(index).to.be.greaterThan(lowIndex);
+ done();
+ }).catch(function(e) {
+ done(e);
+ }).then(function() {
+ localFirebase.removeByKey(key);
+ });
+
+ key = localFirebase.add(data).key();
+ });
+ });
+ });
+ </script>
+
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698