Ember 0.9.8.1 Template
HTML
<script src="https://github.com/downloads/emberjs/ember.js/ember-0.9.8.1.js"></script>
<script type="text/x-handlebars">
</script>
JavaScript
App = Ember.Application.create();
App.Router.map(function() {
this.resource("index", {path: "/"});
this.resource("posts", function() {
this.route("new");
});
});
App.PostsNewRoute = Ember.Route.extend({
model: function() {
this.controllerFor("types").set("content", this.store.find("type"));
return this.store.createRecord("post");
},
actions: {
cancel: function() {
this.get("controller.model").rollback();
this.set("controller.model", null);
this.transitionTo("index"); // go home
}
}
});
App.PostsNewController = Ember.ObjectController.extend({
needs: ["types"]
});
App.TypesController = Ember.ArrayController.extend();
App.PostsNewView = Ember.View.extend({
didInsertElement: function() {
var controller = this.get("controller");
var $lightbox = $(this.get("element"));
$lightbox.dialog({
appendTo: Ember.get(App, "rootElement"),
close: function(event, ui) {
controller.send("cancel");
}
});
}
});
// routing-test.js
module("Router Test", {
setup: function() {
Ember.run(App.advanceReadiness);
},
teardown: function() {
App.reset();
}
});
test("Test 'Create New Post' Dialog and Route", function() {
visit("/posts/new").then(function() {
fillIn("[name=type]", "TYPE1");
ok(!!$(".ui-dialog"), "Transitioned to 'Create New Post' successfully");
verifyFillins2();
});
});
/**
* This is my problem child. I feel like i should be able to do this
* in order to test the value of my drop-down against the value
* stored in Ember.
*/
var verifyFillins = function() {
var controller = App.__container__.lookup("controller:postsNew");
var model = controller.get("model");
var type1Option = controller.get("controllers.types").findBy("TYPE1");
ok(model.get("type") === type1Option, "Type selected...