gaffa-tape/gedi

2014-02-28 04:00:51
npm http GET https://registry.npmjs.org/browserify npm http GET https://registry.npmjs.org/browserify npm http GET https://registry.npmjs.org/browserify npm http 200 https://registry.npmjs.org/browserify npm http GET https://registry.npmjs.org/browserify/-/browserify-3.31.2.tgz npm ERR! fetch failed https://registry.npmjs.org/browserify/-/browserify-3.31.2.tgz npm http GET https://registry.npmjs.org/browserify/-/browserify-3.31.2.tgz npm http 200 https://registry.npmjs.org/browserify/-/browserify-3.31.2.tgz npm http GET https://registry.npmjs.org/shell-quote npm http GET https://registry.npmjs.org/deps-sort npm http GET https://registry.npmjs.org/through npm http GET https://registry.npmjs.org/duplexer npm http GET https://registry.npmjs.org/stream-combiner npm http GET https://registry.npmjs.org/concat-stream npm http GET https://registry.npmjs.org/insert-module-globals npm http GET https://registry.npmjs.org/syntax-error npm http GET https://registry.npmjs.org/browser-resolve npm http GET https://registry.npmjs.org/inherits npm http GET https://registry.npmjs.org/JSONStream npm http GET https://registry.npmjs.org/umd npm http GET https://registry.npmjs.org/parents npm http GET https://registry.npmjs.org/deep-equal npm http GET https://registry.npmjs.org/constants-browserify npm http GET https://registry.npmjs.org/os-browserify npm http GET https://registry.npmjs.org/console-browserify npm http GET https://registry.npmjs.org/vm-browserify npm http GET https://registry.npmjs.org/zlib-browserify npm http GET https://registry.npmjs.org/assert npm http GET https://registry.npmjs.org/http-browserify npm http GET https://registry.npmjs.org/crypto-browserify npm http GET https://registry.npmjs.org/util npm http GET https://registry.npmjs.org/events npm http GET https://registry.npmjs.org/buffer npm http GET https://registry.npmjs.org/url npm http GET https://registry.npmjs.org/https-browserify npm http GET https://registry.npmjs.org/path-browserify npm http GET https://registry.npmjs.org/stream-browserify npm http GET https://registry.npmjs.org/string_decoder npm http GET https://registry.npmjs.org/tty-browserify npm http GET https://registry.npmjs.org/timers-browserify npm http GET https://registry.npmjs.org/punycode npm http GET https://registry.npmjs.org/defined npm http GET https://registry.npmjs.org/domain-browser npm http GET https://registry.npmjs.org/derequire npm http GET https://registry.npmjs.org/commondir/0.0.1 npm http GET https://registry.npmjs.org/shallow-copy/0.0.1 npm http GET https://registry.npmjs.org/subarg/0.0.1 npm http GET https://registry.npmjs.org/resolve npm http GET https://registry.npmjs.org/glob npm http GET https://registry.npmjs.org/builtins/0.0.2 npm http GET https://registry.npmjs.org/module-deps npm http GET https://registry.npmjs.org/browser-pack npm http GET https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz npm http 200 https://registry.npmjs.org/deps-sort npm http GET https://registry.npmjs.org/deps-sort/-/deps-sort-0.1.1.tgz npm http 200 https://registry.npmjs.org/shell-quote npm http 200 https://registry.npmjs.org/through npm http 200 https://registry.npmjs.org/stream-combiner npm http GET https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz npm http GET https://registry.npmjs.org/through/-/through-2.3.4.tgz npm http GET https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz npm ERR! fetch failed https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz npm http 200 https://registry.npmjs.org/deps-sort/-/deps-sort-0.1.1.tgz npm http 200 https://registry.npmjs.org/insert-module-globals npm http 200 https://registry.npmjs.org/inherits npm http GET https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-3.2.0.tgz npm http GET https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz npm http 200 https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz npm ERR! fetch failed https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-3.2.0.tgz npm http 200 https://registry.npmjs.org/concat-stream npm http 200 https://registry.npmjs.org/syntax-error npm http 200 https://registry.npmjs.org/browser-resolve npm http GET https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.1.tgz npm http 200 https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz npm http GET https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm ERR! fetch failed https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm http 200 https://registry.npmjs.org/JSONStream npm http GET https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.2.2.tgz npm http 200 https://registry.npmjs.org/umd npm http GET https://registry.npmjs.org/JSONStream/-/JSONStream-0.7.1.tgz npm http 200 https://registry.npmjs.org/parents npm http 200 https://registry.npmjs.org/deep-equal npm http 200 https://registry.npmjs.org/through/-/through-2.3.4.tgz npm http GET https://registry.npmjs.org/umd/-/umd-2.0.0.tgz npm http 200 https://registry.npmjs.org/constants-browserify npm http GET https://registry.npmjs.org/parents/-/parents-0.0.2.tgz npm http GET https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz npm ERR! fetch failed https://registry.npmjs.org/umd/-/umd-2.0.0.tgz npm http 200 https://registry.npmjs.org/os-browserify npm http GET https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz npm http GET https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.1.tgz npm http 200 https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.2.2.tgz npm http 200 https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz npm http 200 https://registry.npmjs.org/vm-browserify npm http 200 https://registry.npmjs.org/assert npm http 200 https://registry.npmjs.org/zlib-browserify npm http 200 https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz npm http 200 https://registry.npmjs.org/console-browserify npm http GET https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz npm http GET https://registry.npmjs.org/assert/-/assert-1.1.1.tgz npm http GET https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.3.tgz npm http 200 https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.1.tgz npm http GET https://registry.npmjs.org/console-browserify/-/console-browserify-1.0.3.tgz npm http 200 https://registry.npmjs.org/events npm http 200 https://registry.npmjs.org/util npm http 200 https://registry.npmjs.org/JSONStream/-/JSONStream-0.7.1.tgz npm http 200 https://registry.npmjs.org/http-browserify npm http 200 https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.1.tgz npm http GET https://registry.npmjs.org/events/-/events-1.0.0.tgz npm http GET https://registry.npmjs.org/util/-/util-0.10.3.tgz npm http GET https://registry.npmjs.org/http-browserify/-/http-browserify-1.3.1.tgz npm http 200 https://registry.npmjs.org/parents/-/parents-0.0.2.tgz npm http 200 https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz npm http 200 https://registry.npmjs.org/url npm http 200 https://registry.npmjs.org/https-browserify npm http 200 https://registry.npmjs.org/buffer npm http 200 https://registry.npmjs.org/assert/-/assert-1.1.1.tgz npm http GET https://registry.npmjs.org/url/-/url-0.7.9.tgz npm http 200 https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz npm http GET https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz npm http 200 https://registry.npmjs.org/stream-browserify npm http 200 https://registry.npmjs.org/crypto-browserify npm http 200 https://registry.npmjs.org/string_decoder npm http 200 https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.3.tgz npm http GET https://registry.npmjs.org/buffer/-/buffer-2.1.4.tgz npm http 200 https://registry.npmjs.org/console-browserify/-/console-browserify-1.0.3.tgz npm http 200 https://registry.npmjs.org/events/-/events-1.0.0.tgz npm http 200 https://registry.npmjs.org/path-browserify npm http 200 https://registry.npmjs.org/util/-/util-0.10.3.tgz npm http 200 https://registry.npmjs.org/timers-browserify npm http 200 https://registry.npmjs.org/defined npm http 200 https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz npm http GET https://registry.npmjs.org/stream-browserify/-/stream-browserify-0.1.3.tgz npm http GET https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz npm http GET https://registry.npmjs.org/string_decoder/-/string_decoder-0.0.1.tgz npm http 200 https://registry.npmjs.org/tty-browserify npm http GET https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz npm http 200 https://registry.npmjs.org/buffer/-/buffer-2.1.4.tgz npm http 200 https://registry.npmjs.org/url/-/url-0.7.9.tgz npm http 200 https://registry.npmjs.org/commondir/0.0.1 npm http 200 https://registry.npmjs.org/derequire npm http 200 https://registry.npmjs.org/punycode npm http GET https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.1.tgz npm http GET https://registry.npmjs.org/defined/-/defined-0.0.0.tgz npm http 200 https://registry.npmjs.org/shallow-copy/0.0.1 npm http 200 https://registry.npmjs.org/domain-browser npm http GET https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz npm http 200 https://registry.npmjs.org/subarg/0.0.1 npm http 200 https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz npm http 200 https://registry.npmjs.org/string_decoder/-/string_decoder-0.0.1.tgz npm http GET https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz npm http GET https://registry.npmjs.org/derequire/-/derequire-0.6.1.tgz npm http GET https://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz npm http 200 https://registry.npmjs.org/http-browserify/-/http-browserify-1.3.1.tgz npm http GET https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz npm http GET https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.1.tgz npm http 200 https://registry.npmjs.org/stream-browserify/-/stream-browserify-0.1.3.tgz npm http 200 https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz npm http GET https://registry.npmjs.org/subarg/-/subarg-0.0.1.tgz npm http 200 https://registry.npmjs.org/builtins/0.0.2 npm http 200 https://registry.npmjs.org/defined/-/defined-0.0.0.tgz npm http 200 https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.1.tgz npm http 200 https://registry.npmjs.org/resolve npm http 200 https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz npm http 200 https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz npm http 200 https://registry.npmjs.org/glob npm http GET https://registry.npmjs.org/builtins/-/builtins-0.0.2.tgz npm http 200 https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz npm http 200 https://registry.npmjs.org/derequire/-/derequire-0.6.1.tgz npm http GET https://registry.npmjs.org/resolve/-/resolve-0.6.1.tgz npm http 200 https://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz npm http 200 https://registry.npmjs.org/module-deps npm http GET https://registry.npmjs.org/glob/-/glob-3.2.9.tgz npm http 200 https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.1.tgz npm http GET https://registry.npmjs.org/module-deps/-/module-deps-1.7.1.tgz npm http 200 https://registry.npmjs.org/browser-pack npm http 200 https://registry.npmjs.org/subarg/-/subarg-0.0.1.tgz npm http 200 https://registry.npmjs.org/builtins/-/builtins-0.0.2.tgz npm http 200 https://registry.npmjs.org/module-deps/-/module-deps-1.7.1.tgz npm http GET https://registry.npmjs.org/browser-pack/-/browser-pack-2.0.1.tgz npm http 200 https://registry.npmjs.org/resolve/-/resolve-0.6.1.tgz npm http 200 https://registry.npmjs.org/glob/-/glob-3.2.9.tgz npm http 200 https://registry.npmjs.org/browser-pack/-/browser-pack-2.0.1.tgz npm http GET https://registry.npmjs.org/duplexer npm http 200 https://registry.npmjs.org/duplexer npm http GET https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz npm http GET https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz npm http GET https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-3.2.0.tgz npm http 200 https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz npm http GET https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm ERR! fetch failed https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm http 200 https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz npm http GET https://registry.npmjs.org/umd/-/umd-2.0.0.tgz npm http 200 https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-3.2.0.tgz npm http 200 https://registry.npmjs.org/umd/-/umd-2.0.0.tgz npm http GET https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm http 200 https://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz npm http GET https://registry.npmjs.org/querystring npm http GET https://registry.npmjs.org/minimist npm http GET https://registry.npmjs.org/punycode npm http GET https://registry.npmjs.org/JSONStream npm http GET https://registry.npmjs.org/minimist npm http GET https://registry.npmjs.org/esprima-six/0.0.3 npm http GET https://registry.npmjs.org/rfile npm http GET https://registry.npmjs.org/ruglify npm http GET https://registry.npmjs.org/uglify-js npm http 200 https://registry.npmjs.org/minimist npm http GET https://registry.npmjs.org/util/0.10.2 npm http 200 https://registry.npmjs.org/querystring npm http GET https://registry.npmjs.org/process npm http GET https://registry.npmjs.org/indexof/0.0.1 npm http 200 https://registry.npmjs.org/minimist npm http GET https://registry.npmjs.org/tape npm http GET https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz npm http 200 https://registry.npmjs.org/ruglify npm http GET https://registry.npmjs.org/typedarray npm http GET https://registry.npmjs.org/readable-stream npm http GET https://registry.npmjs.org/querystring/-/querystring-0.1.0.tgz npm ERR! fetch failed https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz npm http GET https://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz npm http 200 https://registry.npmjs.org/esprima-six/0.0.3 npm ERR! fetch failed https://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz npm http GET https://registry.npmjs.org/esprima-six/-/esprima-six-0.0.3.tgz npm http 200 https://registry.npmjs.org/rfile npm http GET https://registry.npmjs.org/rfile/-/rfile-1.0.0.tgz npm http 200 https://registry.npmjs.org/util/0.10.2 npm http 200 https://registry.npmjs.org/indexof/0.0.1 npm http GET https://registry.npmjs.org/util/-/util-0.10.2.tgz npm http GET https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz npm http 200 https://registry.npmjs.org/process npm http 200 https://registry.npmjs.org/uglify-js npm http 200 https://registry.npmjs.org/querystring/-/querystring-0.1.0.tgz npm http 200 https://registry.npmjs.org/readable-stream npm http GET https://registry.npmjs.org/process/-/process-0.5.2.tgz npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.12.tgz npm http GET https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.11.tgz npm http 200 https://registry.npmjs.org/typedarray npm http 200 https://registry.npmjs.org/tape npm http 200 https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz npm http GET https://registry.npmjs.org/lexical-scope npm http GET https://registry.npmjs.org/typedarray/-/typedarray-0.0.5.tgz npm http GET https://registry.npmjs.org/tape/-/tape-0.2.2.tgz npm http 200 https://registry.npmjs.org/rfile/-/rfile-1.0.0.tgz npm http 200 https://registry.npmjs.org/util/-/util-0.10.2.tgz npm http GET https://registry.npmjs.org/combine-source-map npm http 200 https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.11.tgz npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.12.tgz npm http 200 https://registry.npmjs.org/process/-/process-0.5.2.tgz npm http 200 https://registry.npmjs.org/esprima-six/-/esprima-six-0.0.3.tgz npm http 200 https://registry.npmjs.org/typedarray/-/typedarray-0.0.5.tgz npm http 200 https://registry.npmjs.org/tape/-/tape-0.2.2.tgz npm http 200 https://registry.npmjs.org/lexical-scope npm http GET https://registry.npmjs.org/minimatch npm http 200 https://registry.npmjs.org/combine-source-map npm http GET https://registry.npmjs.org/lexical-scope/-/lexical-scope-0.1.0.tgz npm http GET https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.3.0.tgz npm http 200 https://registry.npmjs.org/lexical-scope/-/lexical-scope-0.1.0.tgz npm http 200 https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.3.0.tgz npm http 200 https://registry.npmjs.org/minimatch npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz npm http GET https://registry.npmjs.org/detective npm http GET https://registry.npmjs.org/estraverse npm http GET https://registry.npmjs.org/esprima-six npm http GET https://registry.npmjs.org/esrefactor npm http 200 https://registry.npmjs.org/esrefactor npm http GET https://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz npm ERR! fetch failed https://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz npm http 200 https://registry.npmjs.org/detective npm http GET https://registry.npmjs.org/detective/-/detective-2.4.0.tgz npm http 200 https://registry.npmjs.org/esprima-six npm http 200 https://registry.npmjs.org/estraverse npm http GET https://registry.npmjs.org/estraverse/-/estraverse-1.5.0.tgz npm http 200 https://registry.npmjs.org/detective/-/detective-2.4.0.tgz npm http GET https://registry.npmjs.org/jsonparse/0.0.5 npm http GET https://registry.npmjs.org/through npm http 200 https://registry.npmjs.org/estraverse/-/estraverse-1.5.0.tgz npm http 200 https://registry.npmjs.org/jsonparse/0.0.5 npm http GET https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz npm ERR! fetch failed https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz npm http 304 https://registry.npmjs.org/through npm http GET https://registry.npmjs.org/through/-/through-2.2.7.tgz npm http 200 https://registry.npmjs.org/through/-/through-2.2.7.tgz npm http GET https://registry.npmjs.org/debuglog/0.0.2 npm http GET https://registry.npmjs.org/core-util-is npm http GET https://registry.npmjs.org/string_decoder npm http GET https://registry.npmjs.org/lru-cache npm http GET https://registry.npmjs.org/sigmund npm http 200 https://registry.npmjs.org/core-util-is npm http 304 https://registry.npmjs.org/string_decoder npm http 200 https://registry.npmjs.org/debuglog/0.0.2 npm http GET https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz npm http GET https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz npm http GET https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz npm ERR! fetch failed https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz npm ERR! fetch failed https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz npm http GET https://registry.npmjs.org/jsonify npm http GET https://registry.npmjs.org/deep-equal npm http 200 https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz npm http 200 https://registry.npmjs.org/jsonify npm http GET https://registry.npmjs.org/Base64 npm http GET https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz npm http 200 https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz npm http 200 https://registry.npmjs.org/Base64 npm http GET https://registry.npmjs.org/Base64/-/Base64-0.2.0.tgz npm http GET https://registry.npmjs.org/astw npm http GET https://registry.npmjs.org/base64-js npm http GET https://registry.npmjs.org/ieee754 npm http 200 https://registry.npmjs.org/ieee754 npm http GET https://registry.npmjs.org/ieee754/-/ieee754-1.1.3.tgz npm http 200 https://registry.npmjs.org/astw npm http GET https://registry.npmjs.org/astw/-/astw-0.1.0.tgz npm http 200 https://registry.npmjs.org/Base64/-/Base64-0.2.0.tgz npm http 200 https://registry.npmjs.org/ieee754/-/ieee754-1.1.3.tgz npm http 200 https://registry.npmjs.org/astw/-/astw-0.1.0.tgz npm http 200 https://registry.npmjs.org/base64-js npm http GET https://registry.npmjs.org/base64-js/-/base64-js-0.0.6.tgz npm http 200 https://registry.npmjs.org/base64-js/-/base64-js-0.0.6.tgz npm http GET https://registry.npmjs.org/punycode npm http GET https://registry.npmjs.org/JSONStream npm http 304 https://registry.npmjs.org/JSONStream npm http GET https://registry.npmjs.org/JSONStream/-/JSONStream-0.6.4.tgz npm http 304 https://registry.npmjs.org/punycode npm http GET https://registry.npmjs.org/punycode/-/punycode-1.0.0.tgz npm http GET https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz npm http GET https://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz npm http 200 https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz npm http 200 https://registry.npmjs.org/JSONStream/-/JSONStream-0.6.4.tgz npm http 200 https://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz npm http GET https://registry.npmjs.org/escodegen/0.0.15 npm http GET https://registry.npmjs.org/esprima-six/0.0.3 npm http 200 https://registry.npmjs.org/escodegen/0.0.15 npm http GET https://registry.npmjs.org/escodegen/-/escodegen-0.0.15.tgz npm http 200 https://registry.npmjs.org/punycode/-/punycode-1.0.0.tgz npm http GET https://registry.npmjs.org/callsite npm http GET https://registry.npmjs.org/resolve npm http 200 https://registry.npmjs.org/escodegen/-/escodegen-0.0.15.tgz npm http GET https://registry.npmjs.org/uglify-js npm http 200 https://registry.npmjs.org/callsite npm http GET https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz npm http 304 https://registry.npmjs.org/resolve npm ERR! fetch failed https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz npm http GET https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz npm http 304 https://registry.npmjs.org/uglify-js npm http GET https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/source-map npm http GET https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/uglify-to-browserify npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz npm ERR! fetch failed https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz npm http 200 https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz npm http 200 https://registry.npmjs.org/uglify-to-browserify npm http GET https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz npm http GET https://registry.npmjs.org/inline-source-map npm http GET https://registry.npmjs.org/convert-source-map npm http GET https://registry.npmjs.org/source-map npm http 200 https://registry.npmjs.org/optimist npm http 200 https://registry.npmjs.org/source-map npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz npm http GET https://registry.npmjs.org/source-map/-/source-map-0.1.33.tgz npm http 200 https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz npm http 200 https://registry.npmjs.org/source-map/-/source-map-0.1.33.tgz npm http GET https://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz npm http 200 https://registry.npmjs.org/source-map npm http 200 https://registry.npmjs.org/convert-source-map npm http GET https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.3.tgz npm http 200 https://registry.npmjs.org/inline-source-map npm http GET https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.3.0.tgz npm http 200 https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.3.0.tgz npm http GET https://registry.npmjs.org/through npm http 200 https://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz npm http 200 https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.3.tgz npm http GET https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz npm http 200 https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz npm http GET https://registry.npmjs.org/esprima npm http GET https://registry.npmjs.org/escope npm http GET https://registry.npmjs.org/estraverse npm http GET https://registry.npmjs.org/lru-cache npm http GET https://registry.npmjs.org/sigmund npm http 304 https://registry.npmjs.org/estraverse npm http GET https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz npm http GET https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz npm http GET https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz npm http 200 https://registry.npmjs.org/escope npm http 200 https://registry.npmjs.org/lru-cache npm http GET https://registry.npmjs.org/escope/-/escope-0.0.16.tgz npm http 200 https://registry.npmjs.org/esprima npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz npm http 200 https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz npm http GET https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz npm ERR! fetch failed https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz npm http GET https://registry.npmjs.org/deep-equal npm http 200 https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz npm http 200 https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz npm http 200 https://registry.npmjs.org/escope/-/escope-0.0.16.tgz npm http 200 https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz npm http 304 https://registry.npmjs.org/deep-equal npm http GET https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz npm http GET https://registry.npmjs.org/amdefine npm http 200 https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz npm http 200 https://registry.npmjs.org/amdefine npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz npm http GET https://registry.npmjs.org/esprima-six/0.0.3 npm http 304 https://registry.npmjs.org/esprima-six/0.0.3 npm http GET https://registry.npmjs.org/source-map npm http 304 https://registry.npmjs.org/source-map npm http GET https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz npm http GET https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz npm http 200 https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz npm http 200 https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/async/-/async-0.2.10.tgz npm http 200 https://registry.npmjs.org/async/-/async-0.2.10.tgz npm http GET https://registry.npmjs.org/through npm http GET https://registry.npmjs.org/wordwrap npm http 200 https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http 304 https://registry.npmjs.org/through npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http GET https://registry.npmjs.org/optimist npm http 304 https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/amdefine npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz npm http GET https://registry.npmjs.org/amdefine npm http 304 https://registry.npmjs.org/amdefine npm http GET https://registry.npmjs.org/sigmund npm http 200 https://registry.npmjs.org/sigmund npm http GET https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz npm http 200 https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz browserify@3.31.2 node_modules/browserify ├── builtins@0.0.2 ├── https-browserify@0.0.0 ├── tty-browserify@0.0.0 ├── os-browserify@0.1.1 ├── constants-browserify@0.0.1 ├── path-browserify@0.0.0 ├── inherits@2.0.1 ├── commondir@0.0.1 ├── domain-browser@1.1.1 ├── defined@0.0.0 ├── stream-combiner@0.0.4 ├── duplexer@0.1.1 ├── shell-quote@0.0.1 ├── deep-equal@0.1.2 ├── shallow-copy@0.0.1 ├── parents@0.0.2 ├── console-browserify@1.0.3 ├── through@2.3.4 ├── querystring@0.2.0 ├── punycode@1.2.4 ├── string_decoder@0.0.1 ├── util@0.10.3 ├── browser-resolve@1.2.2 ├── events@1.0.0 ├── resolve@0.6.1 ├── vm-browserify@0.0.4 (indexof@0.0.1) ├── timers-browserify@1.0.1 (process@0.5.2) ├── stream-browserify@0.1.3 (process@0.5.2) ├── assert@1.1.1 (util@0.10.2) ├── crypto-browserify@1.0.9 ├── http-browserify@1.3.1 (Base64@0.2.0) ├── buffer@2.1.4 (ieee754@1.1.3, base64-js@0.0.6) ├── syntax-error@0.1.0 (esprima-six@0.0.3) ├── insert-module-globals@3.2.0 (process@0.5.2, lexical-scope@0.1.0) ├── subarg@0.0.1 (minimist@0.0.8) ├── JSONStream@0.7.1 (through@2.2.7, jsonparse@0.0.5) ├── concat-stream@1.4.1 (typedarray@0.0.5, readable-stream@1.1.11) ├── zlib-browserify@0.0.3 (tape@0.2.2) ├── derequire@0.6.1 (estraverse@1.5.0, esprima-six@0.0.3, esrefactor@0.1.0) ├── deps-sort@0.1.1 (minimist@0.0.8, JSONStream@0.6.4) ├── browser-pack@2.0.1 (combine-source-map@0.3.0, JSONStream@0.6.4) ├── module-deps@1.7.1 (minimist@0.0.8, detective@2.4.0) ├── url@0.7.9 (querystring@0.1.0, punycode@1.0.0) ├── umd@2.0.0 (rfile@1.0.0, uglify-js@2.4.12, ruglify@1.0.0) └── glob@3.2.9 (minimatch@0.2.14) npm http GET https://registry.npmjs.org/spec-js npm http GET https://registry.npmjs.org/gedi-paths npm http GET https://registry.npmjs.org/gel-js npm http GET https://registry.npmjs.org/lang-js npm http GET https://registry.npmjs.org/grape npm http GET https://registry.npmjs.org/weakmap npm http GET https://registry.npmjs.org/tape npm http 200 https://registry.npmjs.org/spec-js npm http GET https://registry.npmjs.org/spec-js/-/spec-js-0.0.1.tgz npm ERR! fetch failed https://registry.npmjs.org/spec-js/-/spec-js-0.0.1.tgz npm http 200 https://registry.npmjs.org/grape npm http GET https://registry.npmjs.org/grape/-/grape-0.1.9.tgz npm http 200 https://registry.npmjs.org/gel-js npm http GET https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm http 200 https://registry.npmjs.org/weakmap npm http GET https://registry.npmjs.org/weakmap/-/weakmap-0.0.6.tgz npm ERR! fetch failed https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm http 200 https://registry.npmjs.org/grape/-/grape-0.1.9.tgz npm http 200 https://registry.npmjs.org/weakmap/-/weakmap-0.0.6.tgz npm http GET https://registry.npmjs.org/gedi-paths npm http GET https://registry.npmjs.org/lang-js npm http GET https://registry.npmjs.org/tape npm http 200 https://registry.npmjs.org/lang-js npm http GET https://registry.npmjs.org/spec-js/-/spec-js-0.0.1.tgz npm http GET https://registry.npmjs.org/lang-js/-/lang-js-0.1.1.tgz npm http 200 https://registry.npmjs.org/spec-js/-/spec-js-0.0.1.tgz npm http 304 https://registry.npmjs.org/tape npm http GET https://registry.npmjs.org/tape/-/tape-2.5.0.tgz npm http 200 https://registry.npmjs.org/lang-js/-/lang-js-0.1.1.tgz npm http GET https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm ERR! fetch failed https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm http 200 https://registry.npmjs.org/tape/-/tape-2.5.0.tgz npm http 200 https://registry.npmjs.org/gedi-paths npm http GET https://registry.npmjs.org/gedi-paths/-/gedi-paths-0.4.10.tgz npm ERR! fetch failed https://registry.npmjs.org/gedi-paths/-/gedi-paths-0.4.10.tgz npm http GET https://registry.npmjs.org/gedi-paths/-/gedi-paths-0.4.10.tgz npm http 200 https://registry.npmjs.org/gedi-paths/-/gedi-paths-0.4.10.tgz npm http GET https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm ERR! fetch failed https://registry.npmjs.org/gel-js/-/gel-js-0.6.1.tgz npm ERR! Error: SELF_SIGNED_CERT_IN_CHAIN npm ERR! at SecurePair.<anonymous> (tls.js:1370:32) npm ERR! at SecurePair.EventEmitter.emit (events.js:92:17) npm ERR! at SecurePair.maybeInitFinished (tls.js:982:10) npm ERR! at CleartextStream.read [as _read] (tls.js:469:13) npm ERR! at CleartextStream.Readable.read (_stream_readable.js:320:10) npm ERR! at EncryptedStream.write [as _write] (tls.js:366:25) npm ERR! at doWrite (_stream_writable.js:221:10) npm ERR! at writeOrBuffer (_stream_writable.js:211:5) npm ERR! at EncryptedStream.Writable.write (_stream_writable.js:180:11) npm ERR! at write (_stream_readable.js:583:24) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! System Linux 2.6.35.4-rscloud npm ERR! command "/testling/bin/node-v0.10.24/bin/node" "/testling/bin/node-v0.10.24/bin/npm" "--cache=/home/gaffa-tape/.npm/slctbizmvrlcdgcw" "install" "." npm ERR! cwd /home/gaffa-tape/repos/f980a4640784d3c482eb671faf61183668f67ca9.1393560051192 npm ERR! node -v v0.10.24 npm ERR! npm -v 1.3.21 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/gaffa-tape/repos/f980a4640784d3c482eb671faf61183668f67ca9.1393560051192/npm-debug.log npm ERR! not ok code 0 Error: module "grape" not found from "/home/gaffa-tape/repos/f980a4640784d3c482eb671faf61183668f67ca9.1393560051192/test/basic.js" * preprocessing command exit code 1 *
2014-01-20 07:06:47
8.0
9.0
10.0
✓22.0
✓23.0
✓24.0
✓25.0
✓26.0
✓27.0
✓28.0
✓29.0
✓canary
✓16.0
✓17.0
✓18.0
✓19.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓nightly
5.1
6.0
✓12.0
✓15.0
✓next
6.0
6.0
4.2
android-browser/4.2
timeout waiting to hear back from android-browser/4.2
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
firefox/nightly
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
not ok 1 Error: Object doesn't support this action on line 3837
2014-01-20 07:03:14
8.0
9.0
10.0
✓22.0
✓23.0
✓24.0
✓25.0
✓26.0
✓27.0
✓28.0
✓29.0
✓canary
✓17.0
✓18.0
✓19.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓nightly
16.0
5.1
6.0
✓12.0
✓15.0
✓next
6.0
6.0
4.2
android-browser/4.2
timeout waiting to hear back from android-browser/4.2
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
firefox/nightly
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing ok 78 remove via sort and slice # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 134 # ok
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
# basic get ok 1 found [thing] ok 2 deep get returning valid result on shallow object # nested gets ok 3 found [thing/stuff/majigger] # basic set ok 4 successfully set [thing] # nested set ok 5 successfully set [thing/stuff/majigger] # basic remove ok 6 removed [thing] # nested remove ok 7 removed [thing/stuff/majigger] # tree creation ok 8 created full tree [thing/stuff/majigger] # basic bind ok 9 detected [thing] change # array bind ok 10 detected [things] change # array length bind ok 11 detected [things/length] change # nested bind ok 12 captured [thing/stuff/majigger] change # pre-allocated bind ok 13 captured [thing/stuff/majigger] change # remove bind ok 14 captured [thing] remove # scoped bind ok 15 captured [] change ok 16 captured [thing] change # remove scoped bind ok 17 captured [] change ok 18 captured [a] change # bubbled bind ok 19 captured event on [thing] ok 20 Event capture type was "bubble" # target bind ok 21 captured event on [thing/stuff/majigger] ok 22 Event capture type was "target" # sink bind ok 23 captured event on [thing/stuff/majigger] ok 24 Event capture type was "sink" # ignored sink bind ok 25 captured event on [thing/stuff/majigger] ok 26 Event capture type was "sink" # bind bubbled event.getValue() ok 27 captured [thing...] change, getValue() matches expected ok 28 captured [thing/stuff/majigger] change, getValue() matches expected # bind bubbled event.getValue() remove ok 29 captured [thing] change, getValue() matches expected ok 30 captured [thing/stuff/majigger] change, getValue() result undefined # bind expression event.value ok 31 captured [thing/stuff/majigger] change, getValue() matches expression value # bind expression event.getValue() complex ok 32 captured [thing/stuff] update, value matched expected ok 33 binding triggered, got expected value # relative get ok 34 get [majigger] from using path [thing/stuff] ok # relative get root ok 35 get [/] from path [thing/stuff] matches expected # relative set ok 36 successfully set [majigger] from with path [thing/stuff] # relative set root ok 37 successfully set [/] from path [thing/stuff] # up a level get ok 38 can get [../whatsits] from path [thing/stuff] # up named levels get ok 39 can get [..thing/whatsits] from path [thing/stuff/majigger/foo/bar/pants] # get indexed item ok 40 can get [..things/#/whatsits] from path [things/0/stuff/majigger] # up a level set ok 41 successfully set [../whatsit] from [thing/stuff] # up named levels set ok 42 can set [..thing/whatsit] from path [thing/stuff/majigger/foo/bar/pants] # root get ok 43 successfully got value for [/thing/whatsits] using the path [thing/stuff] # root set ok 44 successfully set [/thing/whatsits] from path [thing/stuff/majigger] # same path get ok 45 successfully got value for [] from path [thing/stuff/majigger] # same path set ok 46 successfully set value for [] from path [thing/stuff/majigger] # set clean ok 47 model is clean # set implicit dirty ok 48 model dirty as expected # set explicit dirty ok 49 model dirty as expected # dirty expression ok 50 expression ok, model not dirty ok 51 expression ok, model dirty # dirty expression - test target ok 52 expression ok, [things/a] not dirty ok 53 expression ok, [things/b] dirty # get all dirty ok 54 things not in the list of dirty objects # get all dirty - multiple changes ok 55 getAllDirty expression resolved ok # set root (overwrite model) ok 56 retrieved [things] ok # get root (return model) ok 57 root model retrieval ok # overwrite dirty state ok 58 model dirty - as expected # overwrite but flag not dirty ok 59 model not dirty # expression path resolving ok 60 last item in [things] = 3 ok 61 [/stuff].things contains 3 items ok 62 [/stuff/things] contains 3 items # expression path setting ok 63 set via dot notation # deep expression path setting ok 64 set via multiple dot notations # expression multiple path setting ok 65 set via filter # expression multiple path setting relative ok 66 set via filter # complex expression setting ok 67 set via sort and slice # complex expression setting 2 ok 68 set via last # complex expression setting 3 ok 69 set via anon function # complex expression setting 4 ok 70 set via anon function # complex expression setting 5 ok 71 set via map # complex expression setting 6 ok 72 set things via concat ok 73 set stuff via concat # complex expression setting 7 ok 74 set via getValue # expression path removing ok 75 remove via dot notation # deep expression path removing ok 76 remove via multiple dot notations # expression multiple path removing ok 77 remove via filter # complex expression removing not ok 78 remove via sort and slice --- operator: deepEqual expected: [3,4,5] actual: [1,2,3] ... # complex expression removing 2 ok 79 remove via last # set explicit dirty expression ok 80 model dirty as expected ok 81 model not dirty as expected # escaped braces ok 82 ok # escaped braces resolution ok 83 ok # escaped escapes ok 84 ok # escaped escapes resolution ok 85 ok # escaped braces and escaped escapes ok 86 ok # debind all ok 87 captured change of [things] # debind callback ok 88 received change ok 89 received change # debind path ok 90 received change 1 ok 91 received change 2 # debind callback at path ok 92 received change ok 93 received change ok 94 received change # debind expression ok 95 received change # debind expression by callback ok 96 received change # debind relative expressions by callback ok 97 received change # debind relative named all ok 98 captured change of [..things/whatsits] # debind relative named keyed all ok 99 captured change of [..things/#/whatsits] # root path ok 100 path is root # absolute path ok 101 path is absolute # relative path ok 102 path is not absolute # append path ok 103 path append works # wildcard callbacks get triggered ok 104 received change ok 105 received change # wildcard callbacks get correct value ok 106 ok 107 # relative wildcard callbacks ok 108 ok 109 # multiple wildcards ok 110 received change ok 111 received change ok 112 received change # reference bind ok 113 detected [foo/things] change ok 114 detected [bar/things] change # removed reference bind ok 115 detected [foo/things] change ok 116 detected [bar/things] change # late added reference bind ok 117 detected [foo/things] change ok 118 detected [foo/things] change ok 119 detected [bar/things] change ok 120 detected [foo/things] change ok 121 detected [bar/things] change # recursive added reference bind ok 122 detected [foo/things] change ok 123 detected [foo/foo/things] change ok 124 detected [foo/foo/foo/foo/foo/foo/foo/foo/things] change # array reference bind ok 125 detected [item] change ok 126 detected [items] change ok 127 detected [item] change ok 128 detected [items] change # recursive added reference bind direct child ok 129 # deep reference change ok 130 captured change on [obj] ok 131 captured change on [things] # add DOM node ok 132 # reference DOM node ok 133 references are not supported on DOM nodes ok 134 changes to a DOM node via reference worked 1..134 # tests 134 # pass 133 # fail 1
not ok 1 Error: Object doesn't support this action on line 3837
2013-12-17 01:21:08
2013-12-17 01:20:09
2013-12-17 01:19:51
2013-12-14 16:05:21
2013-12-10 05:09:56
2013-12-02 06:39:38
2013-12-02 06:39:00
2013-12-02 06:37:39
2013-11-29 02:38:33
2013-11-29 02:01:26
2013-11-25 00:59:35
2013-11-25 00:58:34
2013-11-25 00:58:03
2013-11-25 00:28:47
2013-11-23 17:50:26
2013-11-23 17:39:27
2013-11-23 17:39:16
2013-11-23 17:37:59
2013-11-23 16:20:50
2013-11-23 03:28:12
2013-11-17 09:16:16