spec/sonar/search_spec.rb in sonar-client-0.1.6 vs spec/sonar/search_spec.rb in sonar-client-0.2.0

- old
+ new

@@ -6,12 +6,12 @@ Class.new { extend Sonar::Search } } let(:client) { Sonar::Client.new } describe "#ip_search_type_names" do - it 'includes rdns' do - expect(dummy_class.ip_search_type_names).to include('rdns') + it 'includes ports' do + expect(dummy_class.ip_search_type_names).to include('ports') end it 'does not include fdns' do expect(dummy_class.ip_search_type_names).to_not include('fdns') end end @@ -32,85 +32,38 @@ expect { client.search(invalid: 'something.org') }.to raise_error(ArgumentError) end end end - describe "exact" do - it "shouldn't match anything when #exact is true" do - resp = client.search(fdns: ".rapid7.com", exact: true) - expect(resp["collection"].size).to eq(0) - end - it "should match when #exact is false" do - resp = client.search(fdns: ".rapid7.com", exact: false) - expect(resp["collection"].size).to be > 0 - end - end - describe "limit" do - # The default size from APIv1/v2 is 1,000 records + # The default size from APIv1/v2 is 25 records context "specifying the :limit to 3000 on #search" do - let(:resp) { client.search(rdns: '.hp.com', limit: 3000) } + let(:resp) { client.search(fdns: '.hp.com', limit: 3000) } it "should return a RequestIterator" do expect(resp.class).to eq(Sonar::Request::RequestIterator) end - it "should return 3 x 1,000-record blocks" do + it "should return 120 x 25-record blocks" do num_blocks = 0 resp.each do |resp_block| - expect(resp_block['collection'].size).to eq(1000) - num_blocks += 1 + if resp_block + expect(resp_block['collection'].size).to eq(25) + num_blocks += 1 + end end - expect(num_blocks).to eq(3) + expect(num_blocks).to eq(120) end end end end - context "certificate" do - let(:resp) { client.search(certificate: '.hp.com') } - - it "should provide certificate details" do - expect(resp).to have_key('collection') - end - end - - describe "rdns" do - context "rdnsname" do - let(:resp) { client.search(rdns: '208.118.227.10.rapid7.com') } - - it "returns hashie response of search" do - expect(resp.class).to eq(Hashie::Mash) - end - it "rdnsname finds 208.118.227.10 for 208.118.227.10.rapid7.com" do - expect(resp['collection'].any? { |x| x['address'] == '208.118.227.10' }).to be(true) - end - end - - context "rdnsip" do - let(:resp) { client.search(rdns: '188.40.56.11') } - - it "rdnsip finds static.11.56.40.188.clients.your-server.de for 188.40.56.11" do - expect(resp['collection'].any? { |x| x['name'] == 'static.11.56.40.188.clients.your-server.de' }).to be(true) - end - end - - context "validation" do - let(:resp) { client.search(rdns: '188.40.56.11@#&#') } - - it "should error for invalid domain query type" do - expect(resp["error"]).to eq("Invalid query") - expect(resp["errors"].first).to eq("Expected a domain but got '188.40.56.11@#&#'") - end - end - end - describe "fdns" do context "fdnsname" do let(:resp) { client.search(fdns: 'rapid7.com') } it "returns hashie response of search" do - expect(resp.class).to eq(Hashie::Mash) + expect(resp.class).to eq(Hashie::Mash::Rash) end it "finds fdnsname multiple IP addresses for rapid7.com" do expect(resp['collection'].select { |x| x['address'] }.size).to be >= 2 end end @@ -126,69 +79,11 @@ context "validation" do let(:resp) { client.search(fdns: '188.40.56.11@#&#') } it "should error for invalid domain query type" do expect(resp["error"]).to eq("Invalid query") - expect(resp["errors"].first).to eq("Expected a domain but got '188.40.56.11@#&#'") + expect(resp["errors"].first).to eq("An unsupported gTLD or ccTLD was specified for: 188.40.56.11@#&#") end - end - end - - context "links_to" do - let(:resp) { client.search(links_to: 'rapid7.com') } - - it "should provide links_to details" do - expect(resp).to have_key('collection') - end - end - - context "ipcerts" do - let(:resp) { client.search(ipcerts: '208.118.227.10') } - - it "should provide ipcerts details" do - expect(resp).to have_key('collection') - end - end - - context "certips" do - let(:resp) { client.search(certips: '1e80c24b97c928bb1db7d4d3c05475a6a40a1186') } - - it "should provide certips details" do - expect(resp).to have_key('collection') - end - end - - context "namecerts" do - let(:resp) { client.search(namecerts: '.rapid7.com') } - - it "should provide namecerts details" do - expect(resp).to have_key('collection') - end - end - - context "sslcert" do - let(:resp) { client.search(sslcert: '1e80c24b97c928bb1db7d4d3c05475a6a40a1186') } - - it "should provide sslcert details" do - expect(resp).to have_key('collection') - end - end - - # TODO: actually check response - context "raw" do - let(:resp) { client.search(raw: '208.118.227.10') } - - it "should return a collection" do - expect(resp).to have_key('collection') - end - end - - # TODO: actually check response - context "processed" do - let(:resp) { client.search(processed: '208.118.227.10') } - - it "should return a collection" do - expect(resp).to have_key('collection') end end # TODO: actually check response context "ports" do