aboutsummaryrefslogtreecommitdiffstats
path: root/test/scenario
diff options
context:
space:
mode:
authorShyam Seshadri2010-08-14 00:31:06 +0800
committerMisko Hevery2010-08-13 10:13:03 -0700
commit669d8241b2ea61122aee3e45f67694e65596a2dd (patch)
treeec67784746cf9a88906b7c8476928b42f190e5ec /test/scenario
parent5c14a35e6210fb8500456b3b4ca026cfeb889776 (diff)
downloadangular.js-669d8241b2ea61122aee3e45f67694e65596a2dd.tar.bz2
Pull in Rajat's changes to add click and url checking dsl
Diffstat (limited to 'test/scenario')
-rw-r--r--test/scenario/DSLSpec.js45
1 files changed, 43 insertions, 2 deletions
diff --git a/test/scenario/DSLSpec.js b/test/scenario/DSLSpec.js
index c8e30917..9bf6d31d 100644
--- a/test/scenario/DSLSpec.js
+++ b/test/scenario/DSLSpec.js
@@ -6,10 +6,12 @@ describe("DSL", function() {
setUpContext();
executeFuture = function(future, html, callback) {
lastDocument = _jQuery('<div>' + html + '</div>');
+ lastFrame = _jQuery('<iframe>' + lastDocument + '</iframe>');
_jQuery(document.body).append(lastDocument);
var specThis = {
testWindow: window,
testDocument: lastDocument,
+ testFrame: lastFrame,
jQuery: _jQuery
};
future.behavior.call(specThis, callback || noop);
@@ -39,6 +41,38 @@ describe("DSL", function() {
});
});
+ describe('browser', function() {
+ var browser = angular.scenario.dsl.browser;
+ it('shoud return true if location with empty hash provided is same '
+ + 'as location of the page', function() {
+ browser.location.href = "http://server";
+ expect(browser.location.toEqual("http://server")).toEqual(true);
+ });
+ it('shoud return true if location with hash provided is same '
+ + 'as location of the page', function() {
+ browser.location.href = "http://server";
+ browser.location.hash = "hashPath";
+ expect(browser.location.toEqual("http://server/#/hashPath"))
+ .toEqual(true);
+ });
+ it('should return true if the location provided is the same as which '
+ + 'browser navigated to', function() {
+ var future = browser.navigateTo("http://server/#/hashPath");
+ expect(future.name).toEqual("Navigate to: http://server/#/hashPath");
+ executeFuture(future, '<input type="text" name="name" />');
+ expect(browser.location.toEqual("http://server/#/hashPath"))
+ .toEqual(true);
+ expect(browser.location.toEqual("http://server/"))
+ .toEqual(false);
+
+ future = browser.navigateTo("http://server/");
+ expect(future.name).toEqual("Navigate to: http://server/");
+ executeFuture(future, '<input type="text" name="name" />');
+ expect(browser.location.toEqual("http://server/"))
+ .toEqual(true);
+ });
+ });
+
describe('repeater', function() {
var repeater = angular.scenario.dsl.repeater;
@@ -125,7 +159,7 @@ describe("DSL", function() {
expect(future.fulfilled).toBeTruthy();
}
it('should find elements on the page and provide jquery api', function() {
- var future = element('.reports-detail');
+ var future = element('.reports-detail').find();
expect(future.name).toEqual("Find element '.reports-detail'");
timeTravel(future);
expect(future.value.text()).
@@ -134,11 +168,18 @@ describe("DSL", function() {
toEqual('Description : Details...');
});
it('should find elements with angular syntax', function() {
- var future = element('{{report.description}}');
+ var future = element('{{report.description}}').find();
expect(future.name).toEqual("Find element '{{report.description}}'");
timeTravel(future);
expect(future.value.text()).toEqual('Details...');
expect(future.value.attr('ng:bind')).toEqual('report.description');
});
+ it('should be able to click elements', function(){
+ var future = element('.link-class').click();
+ expect(future.name).toEqual("Click element '.link-class'");
+ executeFuture(future, html, function(value) { future.fulfill(value); });
+ expect(future.fulfilled).toBeTruthy();
+ // TODO(rajat): look for some side effect from click happening?
+ });
});
});