| Index: pkg/polymer/test/attr_mustache_test.dart
|
| diff --git a/pkg/polymer/test/attr_mustache_test.dart b/pkg/polymer/test/attr_mustache_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fba0171279eccb4e5d7a70221e05b946f845978c
|
| --- /dev/null
|
| +++ b/pkg/polymer/test/attr_mustache_test.dart
|
| @@ -0,0 +1,50 @@
|
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import 'dart:async';
|
| +import 'dart:html';
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +import 'package:polymer/polymer.dart';
|
| +
|
| +@CustomTag('x-target')
|
| +class XTarget extends PolymerElement {
|
| + final Completer _found = new Completer();
|
| + Future get foundSrc => _found.future;
|
| +
|
| + // force an mdv binding
|
| + bind(name, model, path) =>
|
| + TemplateElement.mdvPackage(this).bind(name, model, path);
|
| +
|
| + inserted() {
|
| + testSrcForMustache();
|
| + }
|
| +
|
| + attributeChanged(name, oldValue) {
|
| + testSrcForMustache();
|
| + if (attributes[name] == '../testSource') {
|
| + _found.complete();
|
| + }
|
| + }
|
| +
|
| + testSrcForMustache() {
|
| + expect(attributes['src'], isNot(matches(Polymer.bindPattern)),
|
| + reason: 'attribute does not contain {{...}}');
|
| + }
|
| +}
|
| +
|
| +@CustomTag('x-test')
|
| +class XTest extends PolymerElement {
|
| + @observable var src = 'testSource';
|
| +}
|
| +
|
| +main() {
|
| + useHtmlConfiguration();
|
| +
|
| + test('mustache attributes', () {
|
| + final xtest = document.query('#test').xtag;
|
| + final xtarget = xtest.shadowRoot.query('#target').xtag;
|
| + return xtarget.foundSrc;
|
| + });
|
| +}
|
|
|