Skip to content

Commit 67dfaf0

Browse files
authored
Merge pull request #101 from thekuwayama/ech_outer_extensions__10
[ech_outer_extensions] 10. improvement: add multiple OuterExtensions testcase & clean testcase
2 parents 4439b06 + f212511 commit 67dfaf0

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

spec/extensions_spec.rb

+35-6
Original file line numberDiff line numberDiff line change
@@ -196,26 +196,55 @@
196196
end
197197

198198
it 'should be equal remove_and_replace! with []' do
199-
cloned = extensions.clone
200-
expect(extensions.remove_and_replace!([]))
201-
.to eq cloned
199+
expected = extensions.clone
200+
got = extensions.remove_and_replace!([])
201+
202+
expect(got.keys).to eq expected.keys
203+
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS]).to eq nil
204+
expect(extensions.keys - got.keys).to eq []
202205
end
203206

204207
it 'should be equal remove_and_replace! with [key_share]' do
205208
expected = extensions.filter { |k, _| k != ExtensionType::KEY_SHARE }
206209
expected[ExtensionType::ECH_OUTER_EXTENSIONS] = \
207210
Extension::ECHOuterExtensions.new([ExtensionType::KEY_SHARE])
208211
got = extensions.remove_and_replace!([ExtensionType::KEY_SHARE])
212+
209213
expect(got.keys).to eq expected.keys
210214
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions)
211215
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
216+
expect(extensions.keys - got.keys)
217+
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
218+
end
219+
220+
it 'should be equal remove_and_replace! with' \
221+
' [key_share,supported_versions]' do
222+
outer_extensions = [
223+
ExtensionType::KEY_SHARE,
224+
ExtensionType::SUPPORTED_VERSIONS
225+
]
226+
expected = extensions.filter { |k, _| !outer_extensions.include?(k) }
227+
expected[ExtensionType::ECH_OUTER_EXTENSIONS] = \
228+
Extension::ECHOuterExtensions.new(
229+
extensions.filter { |k, _| outer_extensions.include?(k) }.keys
230+
)
231+
got = extensions.remove_and_replace!(outer_extensions)
232+
233+
expect(got.keys).to eq expected.keys
234+
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions)
235+
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
236+
expect(extensions.keys - got.keys)
237+
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
212238
end
213239

214240
it 'should be equal remove_and_replace! with no key_share extensions' \
215241
' & [key_share]' do
216-
cloned = no_key_share_exs.clone
217-
expect(no_key_share_exs.remove_and_replace!([ExtensionType::KEY_SHARE]))
218-
.to eq cloned
242+
expected = no_key_share_exs.clone
243+
got = no_key_share_exs.remove_and_replace!([ExtensionType::KEY_SHARE])
244+
245+
expect(got).to eq expected
246+
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS]).to eq nil
247+
expect(no_key_share_exs.keys - got.keys).to eq []
219248
end
220249
end
221250
end

0 commit comments

Comments
 (0)