Consistently have the namespace closing comment
[folly.git] / folly / io / async / test / SSLContextTest.cpp
1 /*
2  * Copyright 2017 Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <folly/io/async/SSLContext.h>
18 #include <folly/portability/GTest.h>
19 #include <folly/ssl/OpenSSLPtrTypes.h>
20
21 using namespace std;
22 using namespace testing;
23
24 namespace folly {
25
26 class SSLContextTest : public testing::Test {
27  public:
28   SSLContext ctx;
29   void verifySSLCipherList(const vector<string>& ciphers);
30 };
31
32 void SSLContextTest::verifySSLCipherList(const vector<string>& ciphers) {
33   int i = 0;
34   ssl::SSLUniquePtr ssl(ctx.createSSL());
35   for (auto& cipher : ciphers) {
36     ASSERT_STREQ(cipher.c_str(), SSL_get_cipher_list(ssl.get(), i++));
37   }
38   ASSERT_EQ(nullptr, SSL_get_cipher_list(ssl.get(), i));
39 }
40
41 TEST_F(SSLContextTest, TestSetCipherString) {
42   ctx.ciphers("AES128-SHA:ECDHE-RSA-AES256-SHA384");
43   verifySSLCipherList({"AES128-SHA", "ECDHE-RSA-AES256-SHA384"});
44 }
45
46 TEST_F(SSLContextTest, TestSetCipherList) {
47   const vector<string> ciphers = {"ECDHE-RSA-AES128-SHA", "AES256-SHA"};
48   ctx.setCipherList(ciphers);
49   verifySSLCipherList(ciphers);
50 }
51 } // namespace folly