tests/zerigo/requests/dns/dns_tests.rb in fog-maestrodev-1.8.0.20130114204828 vs tests/zerigo/requests/dns/dns_tests.rb in fog-maestrodev-1.14.0.20130806165225
- old
+ new
@@ -1,9 +1,9 @@
Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
# tests assume have a free acccount - ie need to limit # of zones to max of 3
-
+ MAX_ZONE_COUNT = 3
@domain = ''
@org_zone_count = 0
@new_zones = []
@new_records =[]
@@ -154,24 +154,70 @@
result
end
end
- test('list zones - make sure total count is correct') do
- pending if Fog.mocking?
+ test("list zones - make sure total count is #{@org_zone_count+1}") do
+ pending if Fog.mocking?
- result= false
+ result= false
- response = Fog::DNS[:zerigo].list_zones()
- if response.status == 200
- zones = response.body['zones']
- if (@org_zone_count+1) == zones.count
- result= true;
- end
- end
+ response = Fog::DNS[:zerigo].list_zones()
+ if response.status == 200
+ zones = response.body['zones']
+ if (@org_zone_count+1) == zones.count
+ result= true;
+ end
+ end
- result
- end
+ result
+ end
+
+ test('list zones with pagination') do
+ pending if Fog.mocking?
+
+ result = false
+
+ # make enough zones to paginate
+ number_zones_to_create = MAX_ZONE_COUNT-@org_zone_count-1
+ number_zones_to_create.times do |i|
+ domain = generate_unique_domain
+ options = { :nx_ttl => 1800, :active => 'N', :hostmaster => "netops@#{domain}",
+ :notes => 'for client ABC', :tag_list=> "sample-tag-#{i}" }
+ response = Fog::DNS[:zerigo].create_zone( domain, 14400, 'pri', options )
+ if response.status == 201
+ @new_zones << response.body['id']
+ else
+ return false
+ end
+ end
+
+ total_zone_count_response = Fog::DNS[:zerigo].list_zones()
+ if total_zone_count_response.status == 200
+ if number_zones_to_create > 0
+ zones_we_should_see = @new_zones.dup
+ total_zone_count = total_zone_count_response.headers['X-Query-Count'].to_i
+ else
+ zones_we_should_see = total_zone_count_response.body['zones'].collect {|z| z['id']}
+ total_zone_count = zones_we_should_see.count
+ end
+
+ total_zone_count.times do |i|
+ # zerigo pages are 1-indexed, not 0-indexed
+ response = Fog::DNS[:zerigo].list_zones(:per_page => 1, :page => i+1)
+ zones = response.body['zones']
+ if 1 == zones.count
+ zones_we_should_see.delete(zones.first['id'])
+ end
+ end
+
+ if zones_we_should_see.empty?
+ result = true
+ end
+ end
+
+ result
+ end
test('create record - simple A record') do
pending if Fog.mocking?
host= 'www'