2 var express = require('../')
3 , request = require('supertest');
5 describe('req', function(){
6 describe('.secure', function(){
7 describe('when X-Forwarded-Proto is missing', function(){
8 it('should return false when http', function(done){
11 app.get('/', function(req, res){
12 res.send(req.secure ? 'yes' : 'no');
22 describe('.secure', function(){
23 describe('when X-Forwarded-Proto is present', function(){
24 it('should return false when http', function(done){
27 app.get('/', function(req, res){
28 res.send(req.secure ? 'yes' : 'no');
33 .set('X-Forwarded-Proto', 'https')
37 it('should return true when "trust proxy" is enabled', function(done){
40 app.enable('trust proxy');
42 app.get('/', function(req, res){
43 res.send(req.secure ? 'yes' : 'no');
48 .set('X-Forwarded-Proto', 'https')
52 it('should return false when initial proxy is http', function(done){
55 app.enable('trust proxy');
57 app.get('/', function(req, res){
58 res.send(req.secure ? 'yes' : 'no');
63 .set('X-Forwarded-Proto', 'http, https')
67 it('should return true when initial proxy is https', function(done){
70 app.enable('trust proxy');
72 app.get('/', function(req, res){
73 res.send(req.secure ? 'yes' : 'no');
78 .set('X-Forwarded-Proto', 'https, http')
82 describe('when "trust proxy" trusting hop count', function () {
83 it('should respect X-Forwarded-Proto', function (done) {
86 app.set('trust proxy', 1);
88 app.get('/', function (req, res) {
89 res.send(req.secure ? 'yes' : 'no');
94 .set('X-Forwarded-Proto', 'https')