@@ -5,6 +5,7 @@ var pathFn = require('path');
55var fs = require ( 'hexo-fs' ) ;
66var Promise = require ( 'bluebird' ) ;
77var moment = require ( 'moment' ) ;
8+ var sinon = require ( 'sinon' ) ;
89
910describe ( 'View' , function ( ) {
1011 var Hexo = require ( '../../../lib/hexo' ) ;
@@ -201,6 +202,29 @@ describe('View', function() {
201202 } ) ;
202203 } ) ;
203204
205+ it ( 'render() - execute after_render:html' , function ( ) {
206+ var body = [
207+ '{{ test }}'
208+ ] . join ( '\n' ) ;
209+
210+ var view = newView ( 'index.swig' , body ) ;
211+
212+ var filter = sinon . spy ( function ( result ) {
213+ result . should . eql ( 'foo' ) ;
214+ return 'bar' ;
215+ } ) ;
216+
217+ hexo . extend . filter . register ( 'after_render:html' , filter ) ;
218+
219+ return view . render ( {
220+ test : 'foo'
221+ } ) . then ( function ( content ) {
222+ content . should . eql ( 'bar' ) ;
223+ } ) . finally ( function ( ) {
224+ hexo . extend . filter . unregister ( 'after_render:html' , filter ) ;
225+ } ) ;
226+ } ) ;
227+
204228 it ( 'renderSync()' , function ( ) {
205229 var body = [
206230 '{{ test }}'
@@ -258,6 +282,23 @@ describe('View', function() {
258282 } ) . should . eql ( body ) ;
259283 } ) ;
260284
285+ it ( 'renderSync() - execute after_render:html' , function ( ) {
286+ var body = [
287+ '{{ test }}'
288+ ] . join ( '\n' ) ;
289+
290+ var view = newView ( 'index.swig' , body ) ;
291+
292+ var filter = sinon . spy ( function ( result ) {
293+ result . should . eql ( 'foo' ) ;
294+ return 'bar' ;
295+ } ) ;
296+
297+ hexo . extend . filter . register ( 'after_render:html' , filter ) ;
298+ view . renderSync ( { test : 'foo' } ) . should . eql ( 'bar' ) ;
299+ hexo . extend . filter . unregister ( 'after_render:html' , filter ) ;
300+ } ) ;
301+
261302 it ( '_resolveLayout()' , function ( ) {
262303 var view = newView ( 'partials/header.swig' , 'header' ) ;
263304
0 commit comments