diff --git a/spec/basic/elements_spec.js b/spec/basic/elements_spec.js
index <HASH>..<HASH> 100644
--- a/spec/basic/elements_spec.js
+++ b/spec/basic/elements_spec.js
@@ -164,6 +164,25 @@ describe('ElementFinder', function() {
       expect(elem.toWireValue()).toEqual(elem2.toWireValue());
     });
   });
+
+  it('should not resolve to itself', function() {
+    browser.get('index.html#/form');
+    var elem1 = element(by.binding('greeting'));
+    elem1.then(function(result) {
+      expect(result === elem1).toBe(false);
+    });
+  });
+
+  it('should be returned from a helper without infinite loops', function() {
+    browser.get('index.html#/form');
+    var helperPromise = element(by.binding('greeting')).then(function(result) {
+      return result;
+    });
+
+    helperPromise.then(function(finalResult) {
+      expect(finalResult.getText()).toEqual('Hiya');
+    });
+  });
 });
 
 describe('ElementArrayFinder', function() {
tests(promises): add a couple tests to ensure that promise resolution works

These tests ensure that `ElementFinder`, which extends promise, behaves
properly when being resolved before an action has been called on it.

These tests will be useful to have during updates of WebDriverJS.

See #<I>