[6a3a178] | 1 | /* eslint-env mocha */
|
---|
| 2 | 'use strict'
|
---|
| 3 |
|
---|
| 4 | var assert = require('assert')
|
---|
| 5 |
|
---|
| 6 | exports.port = 23433
|
---|
| 7 |
|
---|
| 8 | exports.keys = {
|
---|
| 9 | key: '-----BEGIN RSA PRIVATE KEY-----\n' +
|
---|
| 10 | 'MIIEogIBAAKCAQEA1ARXSoyizYSnHDYickxX4x2UG/8uNWnQWKlWR97NAwRsspN6\n' +
|
---|
| 11 | 'aFF1+LnyN9bvLNnhxIowcYy68+LpZ7pYAQgBZSyAhnF1S4qz2w/rxH4CNn96B/je\n' +
|
---|
| 12 | 'vQGo3e8vIQ8ChhfuYvGAtTEYJzW8aRoxWSPcukZZdxPQ1Wgbhd9DSXhgkUnkEEET\n' +
|
---|
| 13 | 'owyn8ufQFRnQHfc9Fn5DrJilI7vD+ZyRU3gZoBj2GVMQuxJLqQEHy2XsJ6ZWTea/\n' +
|
---|
| 14 | 'EfK93XfDyY7ZxyeK0ZdWCVoTqw9QNJSkGjesCBkcY4Rjxi9LbLJwW3Es4wgW4N4Y\n' +
|
---|
| 15 | 'cltfygjltSis+RVKJyGeDqTWAxceih3mlkdGIQIDAQABAoIBAB6akc8dBdMMtuKH\n' +
|
---|
| 16 | 'nelJw9XwyxRPfWgQYhaqOt4c9xLcbKRKTX0JZTIGBUSyLcwXl1M7b0q0ubfCpVZn\n' +
|
---|
| 17 | 'u5RKh4kHJ3ZAomHJH7UbUzkFx2P+eqrz7ZLyzmFayT7IX+DjS3HU0nNVJttiElRJ\n' +
|
---|
| 18 | 'h54KYy4wQXHC1n43jOGCHMBaM/ZEpO3xA7PLfVD/BpYLzL+FAYoFBb/x2buLv8Mg\n' +
|
---|
| 19 | 'D6QAWkS70mu8ER13NapKjg6PUsYPxHYU30BjGMTXw95Iz5PSAK8+/xQ6YaW7MEVM\n' +
|
---|
| 20 | 'twxxfJfZ+9u9nJMfJANqxCi6iZ6ft/e5cbhvNhV/X97XeoPWxqSpx98M6BC/vvBc\n' +
|
---|
| 21 | 'UjSmaRECgYEA4NH8Y20zC8zF4ALcBgqgrx+U9upov2UGa+kjS1/So4r/dpG4T8pT\n' +
|
---|
| 22 | 'T2tMW6zR5qe7g11kgJm0oI/I6x9P2qwFJONO3MdLYVKd2mSxG2fniCktLg2j6BAX\n' +
|
---|
| 23 | 'QTt5zjIEWvhRP2vkrS8gAaJbVMLTMg4s374bE/IdKT+c59tYpcVaXXMCgYEA8WvJ\n' +
|
---|
| 24 | 'dfPXoagEgaHRd++R2COMG19euOTFRle0MSq+S9ZeeSe9ejb9CIpWYZ3WVviKvf+E\n' +
|
---|
| 25 | 'zksmKTZJnig5pGEgU+2ka1C9PthCGlTlQagD6Ey4hblQgi+pOFgBjE9Yn3FxfppH\n' +
|
---|
| 26 | '25ICXNY89EF6klEqKV67E/5O+nBZo+Y2TM4YKRsCgYAaEV8RbEUB9kFvYwV+Eddl\n' +
|
---|
| 27 | '1uSf6LgykRU4h/TWtYqn+eL7LZRQdCZKzCczbgt8kjBU4AxaOPhPsbxbPus0cMO7\n' +
|
---|
| 28 | '7jtjsBwWcczp2MkMY3TePeAGOgCqVMtNfgb2mKgWoDpTf0ApsJAmgFvUrS5t3GTp\n' +
|
---|
| 29 | 'oJJlMqqc8MpRvAZAWmzK7wKBgEVBFlmvyXumJyTItr4hC0VlbRutEA8aET1Mi3RP\n' +
|
---|
| 30 | 'Pqeipxc6PzB/9bYtePonvQTV53b5ha9n/1pzKEsmXuK4uf1ZfoEKeD8+6jeDgwCC\n' +
|
---|
| 31 | 'ohxRZd12e5Hc+j4fgNIvMM0MTfJzb4mdKPBYxMOMxQyUG/QiKKhjm2RcNlq9/3Wo\n' +
|
---|
| 32 | '6WVhAoGAG4QPWoE4ccFECp8eyGw8rjE45y5uqUI/f/RssX7bnKbCRY0otDsPlJd6\n' +
|
---|
| 33 | 'Kf0XFssLnYsCXO+ua03gw2N+2mrcsuA5FXHmQMrbfnuojHIVY05nt4Wa5iqV/gqH\n' +
|
---|
| 34 | 'PJXWyOgD+Kd6eR/cih/SCoKl4tSGCSJG5TDEpMt+r8EJkCXJ7Fw=\n' +
|
---|
| 35 | '-----END RSA PRIVATE KEY-----',
|
---|
| 36 | cert: '-----BEGIN CERTIFICATE-----\n' +
|
---|
| 37 | 'MIICuTCCAaOgAwIBAgIDAQABMAsGCSqGSIb3DQEBCzAUMRIwEAYDVQQDFglub2Rl\n' +
|
---|
| 38 | 'LnNwZHkwHhcNNjkwMTAxMDAwMDAwWhcNMjUwNzA2MDUwMzQzWjAUMRIwEAYDVQQD\n' +
|
---|
| 39 | 'Fglub2RlLnNwZHkwggEgMAsGCSqGSIb3DQEBAQOCAQ8AMIIBCgKCAQEA1ARXSoyi\n' +
|
---|
| 40 | 'zYSnHDYickxX4x2UG/8uNWnQWKlWR97NAwRsspN6aFF1+LnyN9bvLNnhxIowcYy6\n' +
|
---|
| 41 | '8+LpZ7pYAQgBZSyAhnF1S4qz2w/rxH4CNn96B/jevQGo3e8vIQ8ChhfuYvGAtTEY\n' +
|
---|
| 42 | 'JzW8aRoxWSPcukZZdxPQ1Wgbhd9DSXhgkUnkEEETowyn8ufQFRnQHfc9Fn5DrJil\n' +
|
---|
| 43 | 'I7vD+ZyRU3gZoBj2GVMQuxJLqQEHy2XsJ6ZWTea/EfK93XfDyY7ZxyeK0ZdWCVoT\n' +
|
---|
| 44 | 'qw9QNJSkGjesCBkcY4Rjxi9LbLJwW3Es4wgW4N4YcltfygjltSis+RVKJyGeDqTW\n' +
|
---|
| 45 | 'Axceih3mlkdGIQIDAQABoxowGDAWBgNVHREEDzANggsqLm5vZGUuc3BkeTALBgkq\n' +
|
---|
| 46 | 'hkiG9w0BAQsDggEBALn2FQSDMsyu+oqUnJgTVdGpnzKmfXoBPlQuznRdibri8ABO\n' +
|
---|
| 47 | 'kOo8FC72Iy6leVSsB26KtAdhpURZ3mv1Oyt4cGeeyQln2Olzp5flIos+GqYSztAq\n' +
|
---|
| 48 | '5ZnrzTLLlip7KHkmastYRXhEwTLmo2JCU8RkRP1X/m1xONF/YkURxmqj6cQTahPY\n' +
|
---|
| 49 | 'FzzLP1clW3arJwPlUcKKby6WpxO5MihYEliheBr7fL2TDUA96eG+B/SKxvwaGF2v\n' +
|
---|
| 50 | 'gWF8rg5prjPaLW8HH3Efq59AimFqUVQ4HtcJApjLJDYUKlvsMNMvBqh/pQRRPafj\n' +
|
---|
| 51 | '0Cp8dyS45sbZ2RgXdyfl6gNEj+DiPbaFliIuFmM=\n' +
|
---|
| 52 | '-----END CERTIFICATE-----'
|
---|
| 53 | }
|
---|
| 54 |
|
---|
| 55 | function expectData (stream, expected, callback) {
|
---|
| 56 | var actual = ''
|
---|
| 57 |
|
---|
| 58 | stream.on('data', function (chunk) {
|
---|
| 59 | actual += chunk
|
---|
| 60 | })
|
---|
| 61 | stream.on('end', function () {
|
---|
| 62 | assert.strictEqual(actual, expected)
|
---|
| 63 | callback()
|
---|
| 64 | })
|
---|
| 65 | }
|
---|
| 66 | exports.expectData = expectData
|
---|
| 67 |
|
---|
| 68 | exports.everyProtocol = function everyProtocol (body) {
|
---|
| 69 | var protocols = [
|
---|
| 70 | { protocol: 'http2', alpn: 'h2', version: 4 },
|
---|
| 71 | { protocol: 'spdy', alpn: 'spdy/3.1', version: 3.1 },
|
---|
| 72 | { protocol: 'spdy', alpn: 'spdy/3', version: 3 },
|
---|
| 73 | { protocol: 'spdy', alpn: 'spdy/2', version: 2 }
|
---|
| 74 | ]
|
---|
| 75 |
|
---|
| 76 | protocols.forEach(function (protocol) {
|
---|
| 77 | describe(protocol.alpn, function () {
|
---|
| 78 | body(protocol.protocol, protocol.alpn, protocol.version)
|
---|
| 79 | })
|
---|
| 80 | })
|
---|
| 81 | }
|
---|
| 82 |
|
---|
| 83 | exports.everyConfig = function everyConfig (body) {
|
---|
| 84 | exports.everyProtocol(function (protocol, alpn, version) {
|
---|
| 85 | if (alpn === 'spdy/2') {
|
---|
| 86 | return
|
---|
| 87 | }
|
---|
| 88 |
|
---|
| 89 | [false, true].forEach(function (plain) {
|
---|
| 90 | describe(plain ? 'plain mode' : 'ssl mode', function () {
|
---|
| 91 | body(protocol, alpn, version, plain)
|
---|
| 92 | })
|
---|
| 93 | })
|
---|
| 94 | })
|
---|
| 95 | }
|
---|