From d78c8c2ddd2f67755ec0edb08f65adbf80ee5609 Mon Sep 17 00:00:00 2001 From: Fauntleroy Date: Wed, 19 Mar 2014 14:33:16 -0700 Subject: [PATCH 1/5] add redirect route override test --- test/fixtures/site 1/redirects.json | 3 +++ test/fixtures/site 1/views/overridden-route.hbs | 0 test/solidus.js | 7 +++++++ 3 files changed, 10 insertions(+) create mode 100644 test/fixtures/site 1/views/overridden-route.hbs diff --git a/test/fixtures/site 1/redirects.json b/test/fixtures/site 1/redirects.json index d969f63..18cfb27 100644 --- a/test/fixtures/site 1/redirects.json +++ b/test/fixtures/site 1/redirects.json @@ -17,4 +17,7 @@ "from": "/redirect5", "to": "/", "permanent": true +}, { + "from": "/overridden-route", + "to": "/overridden-redirect" }] \ No newline at end of file diff --git a/test/fixtures/site 1/views/overridden-route.hbs b/test/fixtures/site 1/views/overridden-route.hbs new file mode 100644 index 0000000..e69de29 diff --git a/test/solidus.js b/test/solidus.js index 88c1843..de367c3 100644 --- a/test/solidus.js +++ b/test/solidus.js @@ -348,6 +348,13 @@ describe( 'Solidus', function(){ }); }); + it( 'Overrides page routes with redirect routes', function( done ){ + s_request = request( solidus_server.router ); + s_request.get('/overridden-route') + .expect( 302 ) + .expect( 'location', '/overridden-redirect', done ); + }); + it( 'Sets the default layout', function(){ assert( solidus_server.handlebars.defaultLayout === 'layout' ); }); From 022d8707b334655234edf645db73f56ad65f84fb Mon Sep 17 00:00:00 2001 From: Fauntleroy Date: Wed, 19 Mar 2014 17:14:12 -0700 Subject: [PATCH 2/5] add / route to overridden redirect routes test --- test/fixtures/site 1/redirects.json | 3 +++ test/solidus.js | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/test/fixtures/site 1/redirects.json b/test/fixtures/site 1/redirects.json index 18cfb27..13f5509 100644 --- a/test/fixtures/site 1/redirects.json +++ b/test/fixtures/site 1/redirects.json @@ -20,4 +20,7 @@ }, { "from": "/overridden-route", "to": "/overridden-redirect" +}, { + "from": "/", + "to": "/overridden-index-redirect" }] \ No newline at end of file diff --git a/test/solidus.js b/test/solidus.js index de367c3..a1f96d6 100644 --- a/test/solidus.js +++ b/test/solidus.js @@ -350,9 +350,21 @@ describe( 'Solidus', function(){ it( 'Overrides page routes with redirect routes', function( done ){ s_request = request( solidus_server.router ); - s_request.get('/overridden-route') - .expect( 302 ) - .expect( 'location', '/overridden-redirect', done ); + async.parallel([ + function( cb ){ + s_request.get('/overridden-route') + .expect( 302 ) + .expect( 'location', '/overridden-redirect', cb ); + }, + function( cb ){ + s_request.get('/') + .expect( 302 ) + .expect( 'location', '/overridden-index-redirect', cb ); + }], + function( err, results ){ + if( err ) throw err; + done(); + }); }); it( 'Sets the default layout', function(){ From 05c82ffccbc1177e2b518c90669d6af314645443 Mon Sep 17 00:00:00 2001 From: Fauntleroy Date: Thu, 20 Mar 2014 14:57:59 -0700 Subject: [PATCH 3/5] use underscores for redirect routes --- test/fixtures/site 1/redirects.json | 7 +--- .../site 1/views/overridden-route.hbs | 0 .../site 1/views/overridden_route.hbs | 1 + test/solidus.js | 38 +++++++++---------- 4 files changed, 20 insertions(+), 26 deletions(-) delete mode 100644 test/fixtures/site 1/views/overridden-route.hbs create mode 100644 test/fixtures/site 1/views/overridden_route.hbs diff --git a/test/fixtures/site 1/redirects.json b/test/fixtures/site 1/redirects.json index 13f5509..403a7c7 100644 --- a/test/fixtures/site 1/redirects.json +++ b/test/fixtures/site 1/redirects.json @@ -18,9 +18,6 @@ "to": "/", "permanent": true }, { - "from": "/overridden-route", - "to": "/overridden-redirect" -}, { - "from": "/", - "to": "/overridden-index-redirect" + "from": "/overridden_route", + "to": "/overridden_redirect" }] \ No newline at end of file diff --git a/test/fixtures/site 1/views/overridden-route.hbs b/test/fixtures/site 1/views/overridden-route.hbs deleted file mode 100644 index e69de29..0000000 diff --git a/test/fixtures/site 1/views/overridden_route.hbs b/test/fixtures/site 1/views/overridden_route.hbs new file mode 100644 index 0000000..e885c48 --- /dev/null +++ b/test/fixtures/site 1/views/overridden_route.hbs @@ -0,0 +1 @@ +This route should be overridden \ No newline at end of file diff --git a/test/solidus.js b/test/solidus.js index a1f96d6..69c4e32 100644 --- a/test/solidus.js +++ b/test/solidus.js @@ -74,33 +74,33 @@ describe( 'Solidus', function(){ var redirect_date_format = 'YYYY-MM-DD HH:mm:ss'; var temporal_redirects = [{ start: moment().add( 's', 5 ).format( redirect_date_format ), - from: '/future-redirect', + from: '/future_redirect', to: '/' }, { start: moment().subtract( 's', 5 ).format( redirect_date_format ), end: moment().add( 's', 5 ).format( redirect_date_format ), - from: '/current-redirect', + from: '/current_redirect', to: '/' }, { start: moment().subtract( 's', 10 ).format( redirect_date_format ), end: moment().subtract( 's', 5 ).format( redirect_date_format ), - from: '/past-redirect', + from: '/past_redirect', to: '/' }]; var overlapping_redirects = [{ start: moment().add( 's', 5 ).format( redirect_date_format ), - from: '/overlapping-redirect', - to: '/overlapping-redirect-future' + from: '/overlapping_redirect', + to: '/overlapping_redirect_future' }, { start: moment().subtract( 's', 5 ).format( redirect_date_format ), end: moment().add( 's', 5 ).format( redirect_date_format ), - from: '/overlapping-redirect', - to: '/overlapping-redirect-current' + from: '/overlapping_redirect', + to: '/overlapping_redirect_current' }, { start: moment().subtract( 's', 10 ).format( redirect_date_format ), end: moment().subtract( 's', 5 ).format( redirect_date_format ), - from: '/overlapping-redirect', - to: '/overlapping-redirect-past' + from: '/overlapping_redirect', + to: '/overlapping_redirect_past' }]; var combined_redirects = JSON.stringify( original_redirects_arr.concat( temporal_redirects, overlapping_redirects ) ); fs.writeFileSync( 'redirects.json', combined_redirects, DEFAULT_ENCODING ); @@ -331,16 +331,16 @@ describe( 'Solidus', function(){ s_request.get('/redirect5').expect( 301, callback ); }, function( callback ){ - s_request.get('/past-redirect').expect( 404, callback ); + s_request.get('/past_redirect').expect( 404, callback ); }, function( callback ){ - s_request.get('/current-redirect').expect( 302, callback ); + s_request.get('/current_redirect').expect( 302, callback ); }, function( callback ){ - s_request.get('/future-redirect').expect( 404, callback ); + s_request.get('/future_redirect').expect( 404, callback ); }, function( callback ){ - s_request.get('/overlapping-redirect').expect( 'location', '/overlapping-redirect-current', callback ); + s_request.get('/overlapping_redirect').expect( 'location', '/overlapping_redirect_current', callback ); } ], function( err, results ){ if( err ) throw err; @@ -352,15 +352,11 @@ describe( 'Solidus', function(){ s_request = request( solidus_server.router ); async.parallel([ function( cb ){ - s_request.get('/overridden-route') + s_request.get('/overridden_route') .expect( 302 ) - .expect( 'location', '/overridden-redirect', cb ); - }, - function( cb ){ - s_request.get('/') - .expect( 302 ) - .expect( 'location', '/overridden-index-redirect', cb ); - }], + .expect( 'location', '/overridden_redirect', cb ); + } + ], function( err, results ){ if( err ) throw err; done(); From b357e937472b41c675fc7991dc02052443d65aa5 Mon Sep 17 00:00:00 2001 From: Fauntleroy Date: Thu, 20 Mar 2014 15:33:26 -0700 Subject: [PATCH 4/5] add second redirect to override test --- test/fixtures/site 1/redirects.json | 5 +++++ test/fixtures/site 1/views/overridden_route_2.hbs | 1 + test/solidus.js | 5 +++++ 3 files changed, 11 insertions(+) create mode 100644 test/fixtures/site 1/views/overridden_route_2.hbs diff --git a/test/fixtures/site 1/redirects.json b/test/fixtures/site 1/redirects.json index 403a7c7..5d295f8 100644 --- a/test/fixtures/site 1/redirects.json +++ b/test/fixtures/site 1/redirects.json @@ -20,4 +20,9 @@ }, { "from": "/overridden_route", "to": "/overridden_redirect" +}, { + "from": "/overridden_route_2", + "to": "/overridden_redirect_2", + "start": "2000-1-1 00:00:00", + "end": "3000-1-1 00:00:00" }] \ No newline at end of file diff --git a/test/fixtures/site 1/views/overridden_route_2.hbs b/test/fixtures/site 1/views/overridden_route_2.hbs new file mode 100644 index 0000000..e885c48 --- /dev/null +++ b/test/fixtures/site 1/views/overridden_route_2.hbs @@ -0,0 +1 @@ +This route should be overridden \ No newline at end of file diff --git a/test/solidus.js b/test/solidus.js index 69c4e32..e918e88 100644 --- a/test/solidus.js +++ b/test/solidus.js @@ -355,6 +355,11 @@ describe( 'Solidus', function(){ s_request.get('/overridden_route') .expect( 302 ) .expect( 'location', '/overridden_redirect', cb ); + }, + function( cb ){ + s_request.get('/overridden_route_2') + .expect( 302 ) + .expect( 'location', '/overridden_redirect_2', cb ); } ], function( err, results ){ From 0b38472ba639122065f5aac05f9140076b9ff100 Mon Sep 17 00:00:00 2001 From: Fauntleroy Date: Thu, 20 Mar 2014 17:27:25 -0700 Subject: [PATCH 5/5] update order of operations in test script --- test/solidus.js | 83 +++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/test/solidus.js b/test/solidus.js index e918e88..860ca98 100644 --- a/test/solidus.js +++ b/test/solidus.js @@ -24,48 +24,9 @@ describe( 'Solidus', function(){ describe( 'production', function(){ var solidus_server; - - before( function( done ){ - // mock http endpoints for resources - nock('https://solid.us').get('/basic/1').reply( 200, { test: true } ); - nock('https://solid.us').get('/basic/2').reply( 200, { test: true } ); - nock('https://solid.us').get('/dynamic/segment/3').reply( 200, { test: true } ); - nock('https://solid.us').get('/resource/options/url').reply( 200, { test: true } ); - nock('https://solid.us').get('/resource/options/query?test=true').reply( 200, { test: true } ); - nock('https://solid.us').get('/resource/options/dynamic/query?test=3').reply( 200, { test: true } ); - nock('https://solid.us').get('/resource/options/double/dynamic/query?test2=4&test=3').reply( 200, { test: true } ); - nock('https://solid.us').get('/centralized/auth/query').reply( 200, { test: true } ); - nock('https://solid.us').get('/resource/options/headers').matchHeader( 'key', '12345' ).reply( 200, { test: true } ); - nock('https://a.solid.us').get('/centralized/auth').matchHeader( 'key', '12345' ).reply( 200, { test: true } ); - nock('https://b.solid.us').get('/centralized/auth/query?key=12345').reply( 200, { test: true } ); - // empty dynamic segments - nock('https://solid.us').get('/dynamic/segment/').reply( 200, { test: false } ); - nock('https://solid.us').get('/resource/options/dynamic/query?test=').reply( 200, { test: false } ); - nock('https://solid.us').get('/resource/options/double/dynamic/query?test2=&test=').reply( 200, { test: false } ); - - async.parallel([ - // compressed resources - function( callback ){ - zlib.gzip( '{"test":true}', function( _, result ){ - nock('https://solid.us').get('/compressed/gzip').reply( 200, result, { 'Content-Encoding': 'gzip' } ); - callback(); - }); - }, - function( callback ){ - zlib.deflate( '{"test":true}', function( _, result ){ - nock('https://solid.us').get('/compressed/deflate').reply( 200, result, { 'Content-Encoding': 'deflate' } ); - callback(); - }); - } - ], - function(){ - done(); - }); - }); - var original_redirects = []; - beforeEach( function( done ){ + before( function( done ){ process.chdir( site1_path ); // Generate time-based redirects // These are used to ensure that temporary redirects are properly checked @@ -104,6 +65,45 @@ describe( 'Solidus', function(){ }]; var combined_redirects = JSON.stringify( original_redirects_arr.concat( temporal_redirects, overlapping_redirects ) ); fs.writeFileSync( 'redirects.json', combined_redirects, DEFAULT_ENCODING ); + + // mock http endpoints for resources + nock('https://solid.us').get('/basic/1').reply( 200, { test: true } ); + nock('https://solid.us').get('/basic/2').reply( 200, { test: true } ); + nock('https://solid.us').get('/dynamic/segment/3').reply( 200, { test: true } ); + nock('https://solid.us').get('/resource/options/url').reply( 200, { test: true } ); + nock('https://solid.us').get('/resource/options/query?test=true').reply( 200, { test: true } ); + nock('https://solid.us').get('/resource/options/dynamic/query?test=3').reply( 200, { test: true } ); + nock('https://solid.us').get('/resource/options/double/dynamic/query?test2=4&test=3').reply( 200, { test: true } ); + nock('https://solid.us').get('/centralized/auth/query').reply( 200, { test: true } ); + nock('https://solid.us').get('/resource/options/headers').matchHeader( 'key', '12345' ).reply( 200, { test: true } ); + nock('https://a.solid.us').get('/centralized/auth').matchHeader( 'key', '12345' ).reply( 200, { test: true } ); + nock('https://b.solid.us').get('/centralized/auth/query?key=12345').reply( 200, { test: true } ); + // empty dynamic segments + nock('https://solid.us').get('/dynamic/segment/').reply( 200, { test: false } ); + nock('https://solid.us').get('/resource/options/dynamic/query?test=').reply( 200, { test: false } ); + nock('https://solid.us').get('/resource/options/double/dynamic/query?test2=&test=').reply( 200, { test: false } ); + + async.parallel([ + // compressed resources + function( callback ){ + zlib.gzip( '{"test":true}', function( _, result ){ + nock('https://solid.us').get('/compressed/gzip').reply( 200, result, { 'Content-Encoding': 'gzip' } ); + callback(); + }); + }, + function( callback ){ + zlib.deflate( '{"test":true}', function( _, result ){ + nock('https://solid.us').get('/compressed/deflate').reply( 200, result, { 'Content-Encoding': 'deflate' } ); + callback(); + }); + } + ], + function(){ + done(); + }); + }); + + beforeEach( function( done ){ solidus_server = solidus.start({ log_level: 0, port: 9009 @@ -113,6 +113,9 @@ describe( 'Solidus', function(){ afterEach( function(){ solidus_server.stop(); + }); + + after( function(){ fs.writeFileSync( 'redirects.json', original_redirects, DEFAULT_ENCODING ); process.chdir( original_path ); });