summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2016-03-18 09:40:41 -0700
committerelijah <elijah@riseup.net>2016-03-18 09:40:41 -0700
commit966120293ec289636874edda6089b99dc49cb9ae (patch)
treeb1683e6d43e926abab92b590e5df081dce822c98 /tests
parent7699762d6f94764b1183856c66a2640261fb46dc (diff)
tests: fix mx test, ensure password is redacted.
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers/couchdb_helper.rb2
-rw-r--r--tests/white-box/mx.rb39
2 files changed, 26 insertions, 15 deletions
diff --git a/tests/helpers/couchdb_helper.rb b/tests/helpers/couchdb_helper.rb
index 312e38ac..27dabfcb 100644
--- a/tests/helpers/couchdb_helper.rb
+++ b/tests/helpers/couchdb_helper.rb
@@ -15,6 +15,7 @@ class LeapTest
# connect_port: 15984
#
def couchdb_urls_via_stunnel(path="", options=nil)
+ path = path.gsub('"', '%22')
if options && options[:username] && options[:password]
userpart = "%{username}:%{password}@" % options
else
@@ -46,6 +47,7 @@ class LeapTest
# writable: true
#
def couchdb_url_via_haproxy(path="", options=nil)
+ path = path.gsub('"', '%22')
if options && options[:username] && options[:password]
userpart = "%{username}:%{password}@" % options
else
diff --git a/tests/white-box/mx.rb b/tests/white-box/mx.rb
index 768b561f..57ec9117 100644
--- a/tests/white-box/mx.rb
+++ b/tests/white-box/mx.rb
@@ -39,23 +39,32 @@ class Mx < LeapTest
assert_get(couchdb_url("/identities", url_options)) do |body|
assert response = JSON.parse(body)
doc_count = response['doc_count'].to_i
- if doc_count < 1
- skip "There are no identity records yet."
+ if doc_count <= 1
+ # the design document counts as one document.
+ skip "There are no identity documents yet."
else
- offset = rand(doc_count) # pick a random document
- count_url = couchdb_url("/identities/_all_docs?include_docs=true&limit=1&skip=#{offset}", url_options)
- assert_get(count_url) do |body|
- assert response = JSON.parse(body)
- record = response['rows'].first
- address = record['doc']['address']
- assert address, "address should not be empty"
- url_base = %(/identities/_design/Identity/_view/by_address)
- params = %(?include_docs=true&reduce=false&startkey="#{address}"&endkey="#{address}")
- assert_get(couchdb_url(url_base+params, url_options)) do |body|
+ # try five times to get a valid doc
+ for i in 1..5
+ offset = rand(doc_count) # pick a random document
+ count_url = couchdb_url("/identities/_all_docs?include_docs=true&limit=1&skip=#{offset}", url_options)
+ assert_get(count_url) do |body|
assert response = JSON.parse(body)
- assert record = response['rows'].first
- assert_equal address, record['doc']['address']
- pass
+ record = response['rows'].first
+ if record['id'] =~ /_design/
+ next
+ else
+ address = record['doc']['address']
+ assert address, "Identity document #{record['id']} is missing an address field. #{record['doc'].inspect}"
+ url_base = %(/identities/_design/Identity/_view/by_address)
+ params = %(?include_docs=true&reduce=false&startkey="#{address}"&endkey="#{address}")
+ assert_get(couchdb_url(url_base+params, url_options)) do |body|
+ assert response = JSON.parse(body)
+ assert record = response['rows'].first
+ assert_equal address, record['doc']['address']
+ pass
+ end
+ break
+ end
end
end
end