akamai_rspec 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/akamai_rspec/matchers/matchers.rb +39 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d43da91b99bffdb375af2895ae8c06ee21ef5c2b
|
4
|
+
data.tar.gz: 0e2550fbd977588675e38cdeafd3c2c2d98b3fea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
24
|
-
|
25
|
-
|
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.
|
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-
|
11
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|