Code Duplication    Length = 42-43 lines in 2 locations

tests/HttpClients/FacebookCurlHttpClientTest.php 2 locations

@@ 53-94 (lines=42) @@
50
        $this->curlClient = new FacebookCurlHttpClient($this->curlMock);
51
    }
52
53
    public function testCanOpenGetCurlConnection()
54
    {
55
        $this->curlMock
56
            ->shouldReceive('init')
57
            ->once()
58
            ->andReturn(null);
59
        $this->curlMock
60
            ->shouldReceive('setoptArray')
61
            ->with(m::on(function ($arg) {
62
63
                // array_diff() will sometimes trigger error on child-arrays
64
                if (['X-Foo-Header: X-Bar'] !== $arg[CURLOPT_HTTPHEADER]) {
65
                    return false;
66
                }
67
                unset($arg[CURLOPT_HTTPHEADER]);
68
69
                $caInfo = array_diff($arg, [
70
                    CURLOPT_CUSTOMREQUEST => 'GET',
71
                    CURLOPT_URL => 'http://foo.com',
72
                    CURLOPT_CONNECTTIMEOUT => 10,
73
                    CURLOPT_TIMEOUT => 123,
74
                    CURLOPT_RETURNTRANSFER => true,
75
                    CURLOPT_HEADER => true,
76
                    CURLOPT_SSL_VERIFYHOST => 2,
77
                    CURLOPT_SSL_VERIFYPEER => true,
78
                ]);
79
80
                if (count($caInfo) !== 1) {
81
                    return false;
82
                }
83
84
                if (1 !== preg_match('/.+\/certs\/DigiCertHighAssuranceEVRootCA\.pem$/', $caInfo[CURLOPT_CAINFO])) {
85
                    return false;
86
                }
87
88
                return true;
89
            }))
90
            ->once()
91
            ->andReturn(null);
92
93
        $this->curlClient->openConnection('http://foo.com', 'GET', 'foo_body', ['X-Foo-Header' => 'X-Bar'], 123);
94
    }
95
96
    public function testCanOpenCurlConnectionWithPostBody()
97
    {
@@ 96-138 (lines=43) @@
93
        $this->curlClient->openConnection('http://foo.com', 'GET', 'foo_body', ['X-Foo-Header' => 'X-Bar'], 123);
94
    }
95
96
    public function testCanOpenCurlConnectionWithPostBody()
97
    {
98
        $this->curlMock
99
            ->shouldReceive('init')
100
            ->once()
101
            ->andReturn(null);
102
        $this->curlMock
103
            ->shouldReceive('setoptArray')
104
            ->with(m::on(function ($arg) {
105
106
                // array_diff() will sometimes trigger error on child-arrays
107
                if ([] !== $arg[CURLOPT_HTTPHEADER]) {
108
                    return false;
109
                }
110
                unset($arg[CURLOPT_HTTPHEADER]);
111
112
                $caInfo = array_diff($arg, [
113
                    CURLOPT_CUSTOMREQUEST => 'POST',
114
                    CURLOPT_URL => 'http://bar.com',
115
                    CURLOPT_CONNECTTIMEOUT => 10,
116
                    CURLOPT_TIMEOUT => 60,
117
                    CURLOPT_RETURNTRANSFER => true,
118
                    CURLOPT_HEADER => true,
119
                    CURLOPT_SSL_VERIFYHOST => 2,
120
                    CURLOPT_SSL_VERIFYPEER => true,
121
                    CURLOPT_POSTFIELDS => 'baz=bar',
122
                ]);
123
124
                if (count($caInfo) !== 1) {
125
                    return false;
126
                }
127
128
                if (1 !== preg_match('/.+\/certs\/DigiCertHighAssuranceEVRootCA\.pem$/', $caInfo[CURLOPT_CAINFO])) {
129
                    return false;
130
                }
131
132
                return true;
133
            }))
134
            ->once()
135
            ->andReturn(null);
136
137
        $this->curlClient->openConnection('http://bar.com', 'POST', 'baz=bar', [], 60);
138
    }
139
140
    public function testCanCloseConnection()
141
    {