akamai_rspec 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95accf56ecbd5da4dea5c91a38288a6f216607d0
4
- data.tar.gz: 3491425883955d90f7a0f8122cdfbbcfba5042d6
3
+ metadata.gz: d43da91b99bffdb375af2895ae8c06ee21ef5c2b
4
+ data.tar.gz: 0e2550fbd977588675e38cdeafd3c2c2d98b3fea
5
5
  SHA512:
6
- metadata.gz: 2d70621b82a1a6bbb246918c824cfb99f06236ad69c5f2f36e112cd7b46be53ecc99807157b94a449956524f4213321d1657b253fae52707c7b0282036ccc137
7
- data.tar.gz: 4ef55828e09f523a8bfe1e9eabeba551be6f9d5aefa317e48406819f7c24aeb596b679aa9c48415fdf45bc32a93a2801670d6cf098c89d89e4d29f6362d473e5
6
+ metadata.gz: 8e830785e239ca8a42dbbd2fbbad8c3f265a2de8a8c720a04dd16ad4c03fbcc2e164583aaaa80ab01d376b5f1e483cd1f0c967b211a81b8d7a39e3ab7c6f0d0f
7
+ data.tar.gz: 158112f7fd65328f5804e93340412f321103045bb67f3ac4772a55591318b3a3e3ddf8e82e4cc74d00ce87e63d87b9cab2c02e2824b63c84529cf09bf9876657
@@ -6,25 +6,55 @@ require_relative 'non_akamai'
6
6
  require_relative 'honour_origin_headers'
7
7
  include AkamaiHeaders
8
8
 
9
+ X_CACHE_HEADERS = [:x_true_cache_key, :x_cache_key]
10
+
9
11
  RSpec::Matchers.define :be_served_from_origin do |contents|
10
12
  match do |url|
11
13
  response = RestClient::Request.responsify url
12
- fail 'No X-Cache-Key header' if response.headers[:x_cache_key].nil?
13
- unless response.headers[:x_cache_key] =~ /\/#{contents}\//
14
- fail("x_cache_key has value '#{response.headers[:x_cache_key]}' which doesn't match '#{contents}'")
15
- end
16
- response.code == 200
14
+ return true if x_cache_headers_from_origin(response, contents)
15
+ missing_x_cache_error(response, contents)
16
+ expect(response).to be_successful
17
+ has_x_cache_headers(response)
17
18
  end
18
19
  end
19
20
 
20
21
  RSpec::Matchers.define :have_cp_code do |contents|
21
22
  match do |url|
22
23
  response = RestClient::Request.responsify url
23
- fail 'No X-Cache-Key header' if response.headers[:x_cache_key].nil?
24
- unless response.headers[:x_cache_key].include?(contents)
25
- fail("x_cache_key has value '#{response.headers[:x_cache_key]}' which doesn't include '#{contents}'")
24
+ has_x_cache_headers(response)
25
+ return true if x_cache_headers_contain(response, contents)
26
+ missing_x_cache_error(response, contents)
27
+ expect(response).to be_successful
28
+ end
29
+ end
30
+
31
+ def has_x_cache_headers(response)
32
+ unless X_CACHE_HEADERS.inject(false) { |bool, header| bool || response.headers.include?(header) }
33
+ fail "Response does not contain the debug headers"
34
+ end
35
+ end
36
+
37
+ def x_cache_headers_contain(response, contents)
38
+ X_CACHE_HEADERS.each do |key|
39
+ return true if response.headers[key] && response.headers[key].include?(contents)
40
+ end
41
+ false
42
+ end
43
+
44
+
45
+ def x_cache_headers_from_origin(response, contents)
46
+ X_CACHE_HEADERS.each do |key|
47
+ header = response.headers[key]
48
+ return true if (header && header =~ /\/#{contents}\//)
49
+ end
50
+ return false
51
+ end
52
+
53
+ def missing_x_cache_error(response, contents)
54
+ X_CACHE_HEADERS.each do |key|
55
+ if (response.headers[key])
56
+ fail("#{key} has value '#{response.headers[key]}' which doesn't match '#{contents}'")
26
57
  end
27
- response.code == 200
28
58
  end
29
59
  end
30
60
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akamai_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bianca Gibson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-22 00:00:00.000000000 Z
11
+ date: 2015-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client