QUnit.test("Destroying a namespace after looking up removes it from the list of namespaces", function() { var CF = lookup.CF = Namespace.create(); equal(Namespace.byName('CF'), CF, "precondition - namespace can be looked up by name"); run(CF, 'destroy'); equal(Namespace.byName('CF'), undefined, "namespace can not be found after destroyed"); });
QUnit.test('the default resolver can look things up in other namespaces', function() { var UserInterface = Ember.lookup.UserInterface = Namespace.create(); UserInterface.NavigationController = Controller.extend(); var nav = locator.lookup('controller:userInterface/navigation'); ok(nav instanceof UserInterface.NavigationController, "the result should be an instance of the specified class"); });
QUnit.test("Calling namespace.nameClasses() eagerly names all classes", function() { Ember.BOOTED = true; var namespace = lookup.NS = Namespace.create(); namespace.ClassA = EmberObject.extend(); namespace.ClassB = EmberObject.extend(); Namespace.processAll(); equal(namespace.ClassA.toString(), "NS.ClassA"); equal(namespace.ClassB.toString(), "NS.ClassB"); });
setup: function() { originalOutletHelper = helpers['outlet']; registerHelper('outlet', outletHelper); originalRenderHelper = helpers['render']; registerHelper('render', renderHelper); originalActionHelper = helpers['action']; registerHelper('action', actionHelper); var namespace = Namespace.create(); var registry = buildRegistry(namespace); container = registry.container(); },
setup: function() { originalOutletHelper = EmberHandlebars.helpers['outlet']; EmberHandlebars.registerHelper('outlet', outletHelper); originalRenderHelper = EmberHandlebars.helpers['render']; EmberHandlebars.registerHelper('render', renderHelper); originalActionHelper = EmberHandlebars.helpers['action']; EmberHandlebars.registerHelper('action', actionHelper); var namespace = Namespace.create(); container = buildContainer(namespace); container.register('view:default', EmberView.extend()); container.register('router:main', EmberRouter.extend()); },
test("Lowercase namespaces are no longer supported", function() { var nsC = lookup.namespaceC = Namespace.create(); equal(nsC.toString(), undefined); });
test("Namespace should be duck typed", function() { ok(get(Namespace.create(), 'isNamespace'), "isNamespace property is true"); });
test("Destroying a namespace before caching lookup removes it from the list of namespaces", function(){ var CF = lookup.CF = Namespace.create(); run(CF,'destroy'); equal(Namespace.byName('CF'), undefined, "namespace can not be found after destroyed"); });
test("A nested namespace can be looked up by its name", function() { var UI = lookup.UI = Namespace.create(); UI.Nav = Namespace.create(); equal(Namespace.byName('UI.Nav'), UI.Nav); });
run(function() { lookup.App = Namespace.create({ name: 'myApp' }); });
QUnit.test('Namespace should be duck typed', function() { ok(get(Namespace.create(), 'isNamespace'), 'isNamespace property is true'); });
import Namespace from 'ember-runtime/system/namespace'; import Controller from 'ember-runtime/controllers/controller'; import EmberView from 'ember-views/views/view'; import jQuery from 'ember-views/system/jquery'; import compile from 'ember-template-compiler/system/compile'; import { runAppend, runDestroy } from 'ember-runtime/tests/utils'; import { buildRegistry } from 'ember-routing-htmlbars/tests/utils'; var trim = jQuery.trim; var registry, container, top; QUnit.module('ember-routing-htmlbars: {{outlet}} helper', { setup() { var namespace = Namespace.create(); registry = buildRegistry(namespace); container = registry.container(); var CoreOutlet = container.lookupFactory('view:core-outlet'); top = CoreOutlet.create(); }, teardown() { runDestroy(container); runDestroy(top); registry = container = top = null; } }); QUnit.test('view should render the outlet when set after dom insertion', function() {
setup: function() { namespace = Namespace.create(); container = buildContainer(namespace); },
setup: function() { namespace = Namespace.create(); container = buildContainer(namespace); container._registry.register('controller:app', Controller.extend()); appController = container.lookup('controller:app'); },
setup: function() { window.TemplateTests = Namespace.create(); },
setup: function() { Ember.lookup = lookup = { Ember: Ember }; lookup.TemplateTests = TemplateTests = Namespace.create(); },
run(function() { lookup.App = App = Namespace.create(); });
function nthChild(view, nth) { return get(view, 'childViews').objectAt(nth || 0); } var firstChild = nthChild; function firstGrandchild(view) { return get(get(view, 'childViews').objectAt(0), 'childViews').objectAt(0); } QUnit.module("collection helper", { setup() { Ember.lookup = lookup = {}; lookup.TemplateTests = TemplateTests = Namespace.create(); registry = new Registry(); container = registry.container(); registry.optionsForType('template', { instantiate: false }); // registry.register('view:default', _MetamorphView); registry.register('view:toplevel', EmberView.extend()); }, teardown() { runDestroy(container); runDestroy(view); registry = container = view = null; Ember.lookup = lookup = originalLookup; TemplateTests = null;
test("works from a template with bindings", function() { var Person = EmberObject.extend({ id: null, firstName: null, lastName: null, fullName: computed(function() { return this.get('firstName') + " " + this.get('lastName'); }).property('firstName', 'lastName') }); var erik = Person.create({id: 4, firstName: 'Erik', lastName: 'Bryn'}); var application = Namespace.create(); application.peopleController = ArrayController.create({ content: Ember.A([ Person.create({id: 1, firstName: 'Yehuda', lastName: 'Katz'}), Person.create({id: 2, firstName: 'Tom', lastName: 'Dale'}), Person.create({id: 3, firstName: 'Peter', lastName: 'Wagenet'}), erik ]) }); application.selectedPersonController = EmberObject.create({ person: null }); view = EmberView.create({ app: application, selectView: SelectView, template: compile( '{{view view.selectView viewName="select"' + ' contentBinding="view.app.peopleController"' + ' optionLabelPath="content.fullName"' + ' optionValuePath="content.id"' + ' prompt="Pick a person:"' + ' selectionBinding="view.app.selectedPersonController.person"}}' ) }); run(function() { view.appendTo('#qunit-fixture'); }); var select = view.get('select'); ok(select.$().length, "Select was rendered"); equal(select.$('option').length, 5, "Options were rendered"); equal(select.$().text(), "Pick a person:Yehuda KatzTom DalePeter WagenetErik Bryn\n", "Option values were rendered"); equal(select.get('selection'), null, "Nothing has been selected"); run(function() { application.selectedPersonController.set('person', erik); }); equal(select.get('selection'), erik, "Selection was updated through binding"); run(function() { application.peopleController.pushObject(Person.create({id: 5, firstName: "James", lastName: "Rosen"})); }); equal(select.$('option').length, 6, "New option was added"); equal(select.get('selection'), erik, "Selection was maintained after new option was added"); });
run(function() { lookup.App = App = Namespace.create({ isGreat: true, isEnabled: true }); });