Navigation Menu

Skip to content

Commit

Permalink
Return all domains by DescribeDomains if no "DomainNames" option is s…
Browse files Browse the repository at this point in the history
…pecified
  • Loading branch information
piroor committed Aug 3, 2012
1 parent 96f2b41 commit 8ae9e11
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 17 deletions.
10 changes: 6 additions & 4 deletions lib/api/2011-02-01/configuration.js
Expand Up @@ -154,9 +154,11 @@ handlers.DescribeDomains = function(context, request, response) {
var domainNames = keys.sort().map(function(key) {
return request.query[key];
});
var domains = domainNames.map(function(name) {
return new Domain(name, context);
});
var domains = domainNames.length ?
domainNames.map(function(name) {
return new Domain(name, context);
}) :
Domain.getAll(context) ;
response.contentType('application/xml');
response.send(createDescribeDomainsResponse({
domains: domains,
Expand Down Expand Up @@ -196,7 +198,7 @@ function createIndexFieldOptionStatus(options) {

function createIndexFieldStatus(options) {
var indexFieldStatus = xmlbuilder.create();
indexFieldStatus.begin('IndexField', { version: '1.0' })
indexFieldStatus.begin(options.element || 'IndexField', { version: '1.0' })
.element('Options')
.element('IndexFieldName').text(options.field.name).up()
.element('IndexFieldType').text(options.field.type).up()
Expand Down
60 changes: 47 additions & 13 deletions test/api-configuration.test.js
Expand Up @@ -330,7 +330,52 @@ suite('Configuration API', function() {
});
});

test('Get, Action=DescribeDomains', function(done) {
function getActualDescribedDomains(response) {
var actualDomains = response.body.DescribeDomainsResponse
.DescribeDomainsResult
.DomainStatusList
.member;
var domains = [];
for (var i in actualDomains) {
if (actualDomains.hasOwnProperty(i))
domains.push(actualDomains[i].DomainName);
}
return domains;
}

test('Get, Action=DescribeDomains (all domains)', function(done) {
var domain;
utils
.get('/?DomainName=domain3&Action=CreateDomain&Version=2011-02-01', {
'Host': 'cloudsearch.localhost'
})
.get('/?DomainName=domain1&Action=CreateDomain&Version=2011-02-01', {
'Host': 'cloudsearch.localhost'
})
.get('/?DomainName=domain2&Action=CreateDomain&Version=2011-02-01', {
'Host': 'cloudsearch.localhost'
})
.get('/?Action=DescribeDomains&Version=2011-02-01', {
'Host': 'cloudsearch.localhost'
})
.next(function(response) {
response = toParsedResponse(response);
var expectedDomains = ['domain1', 'domain2', 'domain3'];
assert.deepEqual(response.pattern,
{ statusCode: 200,
body: PATTERN_DescribeDomainsResponse(expectedDomains) });

var actualDomains = getActualDescribedDomains(response);
assert.deepEqual(actualDomains, expectedDomains);

done();
})
.error(function(error) {
done(error);
});
});

test('Get, Action=DescribeDomains (specified domains)', function(done) {
var domain;
utils
.get('/?DomainName=domain3&Action=CreateDomain&Version=2011-02-01', {
Expand All @@ -354,18 +399,7 @@ suite('Configuration API', function() {
{ statusCode: 200,
body: PATTERN_DescribeDomainsResponse(expectedDomains) });

var actualDomains = response.body.DescribeDomainsResponse
.DescribeDomainsResult
.DomainStatusList
.member;
actualDomains = (function() {
var domains = [];
for (var i in actualDomains) {
if (actualDomains.hasOwnProperty(i))
domains.push(actualDomains[i].DomainName);
}
return domains;
})();
var actualDomains = getActualDescribedDomains(response);
assert.deepEqual(actualDomains, expectedDomains);

done();
Expand Down

0 comments on commit 8ae9e11

Please sign in to comment.