Skip to content

Instantly share code, notes, and snippets.

@rklancer
Created November 22, 2010 02:23
Show Gist options
  • Save rklancer/709434 to your computer and use it in GitHub Desktop.
Save rklancer/709434 to your computer and use it in GitHub Desktop.
This fails in the latest master commit
// Author: Richard Klancer <[email protected]>
/*globals module test ok equals same stop start */
module("Problematic SC.ObserverSet.getMethods() removal", {
setup: function () {
SC.LOG_OBSERVERS = YES;
},
teardown: function () {
SC.LOG_OBSERVERS = NO;
}
});
// This test succeeds using master up to commit 5826c745874f903f1e4765e5a2bcb5244ff72113 and using the 1-4-stable HEAD
// This test fails using subsequent master commit c78e1bf25087a3ebd553dbc513923e0d32d09f7b
// It triggers an error at line 987 of frameworks/system/runtime/mixins/observable.js (in the method
// SC.Observable._notifyPropertyObservers()) as of current master commit, 789fe805cd08976b7aab1c346c71cf22b78b7285
test("Observers that remove themselves should fire at least once, and shouldn't cause an error", function () {
expect(1);
var observed = SC.Object.create({
key: 'val'
});
var observer1, observer2;
var observerFired = NO;
function removeObservers() {
observed.removeObserver('key', observer1);
observed.removeObserver('key', observer2);
}
observer1 = function () {
observerFired = YES;
removeObservers();
};
observer2 = function () {
observerFired = YES;
removeObservers();
};
observed.addObserver('key', observer1);
observed.addObserver('key', observer2);
observed.set('key', 'newval');
ok(observerFired, "At least one observer should have fired.");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment