@@ -232,6 +232,20 @@ function getDimensions(options) {
232232 }
233233}
234234
235+ /**
236+ * Returns a cloned object
237+ * @param {object } obj
238+ * @return {object } cloned object
239+ */
240+ function cloneObject ( obj ) {
241+ if ( obj === null || ( typeof obj === 'undefined' ? 'undefined' : babelHelpers_typeof ( obj ) ) !== 'object' ) return obj ;
242+ var temp = obj . constructor ( ) ; // give temp the original obj's constructor
243+ for ( var key in obj ) {
244+ temp [ key ] = cloneObject ( obj [ key ] ) ;
245+ }
246+ return temp ;
247+ }
248+
235249function urlRegex ( ) {
236250 return ( / ( ( h r e f | s r c ) = [ " ' ] | ) ( \b ( h t t p s ? | f t p | f i l e ) : \/ \/ [ - A - Z 0 - 9 + & @ # \/ % ? = ~ _ | ! : , . ; ] * [ - A - Z 0 - 9 + & @ # \/ % = ~ _ | ] ) | (?: h t t p s ? : \/ \/ ) ? (?: (?: 0 r z \. t w ) | (?: 1 l i n k \. i n ) | (?: 1 u r l \. c o m ) | (?: 2 \. g p ) | (?: 2 b i g \. a t ) | (?: 2 t u \. u s ) | (?: 3 \. l y ) | (?: 3 0 7 \. t o ) | (?: 4 m s \. m e ) | (?: 4 s q \. c o m ) | (?: 4 u r l \. c c ) | (?: 6 u r l \. c o m ) | (?: 7 \. l y ) | (?: a \. g g ) | (?: a \. n f ) | (?: a a \. c x ) | (?: a b c u r l \. n e t ) | (?: a d \. v u ) | (?: a d f \. l y ) | (?: a d j i x \. c o m ) | (?: a f x \. c c ) | (?: a l l \. f u s e u r l .c o m ) | (?: a l t u r l \. c o m ) | (?: a m z n \. t o ) | (?: a r \. g y ) | (?: a r s t \. c h ) | (?: a t u \. c a ) | (?: a z c \. c c ) | (?: b 2 3 \. r u ) | (?: b 2 l \. m e ) | (?: b a c n \. m e ) | (?: b c o o l \. b z ) | (?: b i n g e d \. i t ) | (?: b i t \. l y ) | (?: b u f f \. l y ) | (?: b i z j \. u s ) | (?: b l o a t \. m e ) | (?: b r a v o \. l y ) | (?: b s a \. l y ) | (?: b u d u r l \. c o m ) | (?: c a n u r l \. c o m ) | (?: c h i l p \. i t ) | (?: c h z b \. g r ) | (?: c l \. l k ) | (?: c l \. l y ) | (?: c l c k \. r u ) | (?: c l i \. g s ) | (?: c l i c c a m i \. i n f o ) | (?: c l i c k t h r u \. c a ) | (?: c l o p \. i n ) | (?: c o n t a \. c c ) | (?: c o r t \. a s ) | (?: c o t \. a g ) | (?: c r k s \. m e ) | (?: c t v r \. u s ) | (?: c u t t \. u s ) | (?: d a i \. l y ) | (?: d e c e n t u r l \. c o m ) | (?: d f l 8 \. m e ) | (?: d i g b i g \. c o m ) | (?: d i g g \. c o m ) | (?: d i s q \. u s ) | (?: d l d \. b z ) | (?: d l v r \. i t ) | (?: d o \. m y ) | (?: d o i o p \. c o m ) | (?: d o p e n \. u s ) | (?: e a s y u r i \. c o m ) | (?: e a s y u r l \. n e t ) | (?: e e p u r l \. c o m ) | (?: e w e r i \. c o m ) | (?: f a \. b y ) | (?: f a v \. m e ) | (?: f b \. m e ) | (?: f b s h a r e \. m e ) | (?: f f \. i m ) | (?: f f f \. t o ) | (?: f i r e \. t o ) | (?: f i r s t u r l \. d e ) | (?: f i r s t u r l \. n e t ) | (?: f l i c \. k r ) | (?: f l q \. u s ) | (?: f l y 2 \. w s ) | (?: f o n \. g s ) | (?: f r e a k \. t o ) | (?: f u s e u r l \. c o m ) | (?: f u z z y \. t o ) | (?: f w d 4 \. m e ) | (?: f w i b \. n e t ) | (?: g \. r o .l t ) | (?: g i z m o \. d o ) | (?: g l \. a m ) | (?: g o \. 9 n l .c o m ) | (?: g o \. i g n .c o m ) | (?: g o \. u s a .g o v ) | (?: g o o \. g l ) | (?: g o s h r i n k \. c o m ) | (?: g u r l \. e s ) | (?: h e x \. i o ) | (?: h i d e r e f e r \. c o m ) | (?: h m m \. p h ) | (?: h r e f \. i n ) | (?: h s b l i n k s \. c o m ) | (?: h t x t \. i t ) | (?: h u f f \. t o ) | (?: h u l u \. c o m ) | (?: h u r l \. m e ) | (?: h u r l \. w s ) | (?: i c a n h a z \. c o m ) | (?: i d e k \. n e t ) | (?: i l i x \. i n ) | (?: i s \. g d ) | (?: i t s \. m y ) | (?: i x \. l t ) | (?: j \. m p ) | (?: j i j r \. c o m ) | (?: k l \. a m ) | (?: k l c k \. m e ) | (?: k o r t a \. n u ) | (?: k r u n c h d \. c o m ) | (?: l 9 k \. n e t ) | (?: l a t \. m s ) | (?: l i i p \. t o ) | (?: l i l t e x t \. c o m ) | (?: l i n k b e e \. c o m ) | (?: l i n k b u n \. c h ) | (?: l i u r l \. c n ) | (?: l n - s \. n e t ) | (?: l n - s \. r u ) | (?: l n k \. g d ) | (?: l n k \. m s ) | (?: l n k d \. i n ) | (?: l n k u r l \. c o m ) | (?: l r u \. j p ) | (?: l t \. t l ) | (?: l u r l \. n o ) | (?: m a c t e \. c h ) | (?: m a s h \. t o ) | (?: m e r k y \. d e ) | (?: m i g r e \. m e ) | (?: m i n i u r l \. c o m ) | (?: m i n u r l \. f r ) | (?: m k e \. m e ) | (?: m o b y \. t o ) | (?: m o o u r l \. c o m ) | (?: m r t e \. c h ) | (?: m y l o c \. m e ) | (?: m y u r l \. i n ) | (?: n \. p r ) | (?: n b c \. c o ) | (?: n b l o \. g s ) | (?: n n \. n f ) | (?: n o t \. m y ) | (?: n o t l o n g \. c o m ) | (?: n s f w \. i n ) | (?: n u t s h e l l u r l \. c o m ) | (?: n x y \. i n ) | (?: n y t i \. m s ) | (?: o - x \. f r ) | (?: o c 1 \. u s ) | (?: o m \. l y ) | (?: o m f \. g d ) | (?: o m o i k a n e \. n e t ) | (?: o n \. c n n .c o m ) | (?: o n \. m k t w .n e t ) | (?: o n f o r b \. e s ) | (?: o r z \. s e ) | (?: o w \. l y ) | (?: p i n g \. f m ) | (?: p l i \. g s ) | (?: p n t \. m e ) | (?: p o l i t i \. c o ) | (?: p o s t \. l y ) | (?: p p \. g g ) | (?: p r o f i l e \. t o ) | (?: p t i t u r l \. c o m ) | (?: p u b \. v i t r u e .c o m ) | (?: q l n k \. n e t ) | (?: q t e \. m e ) | (?: q u \. t c ) | (?: q y \. f i ) | (?: r \. i m ) | (?: r b 6 \. m e ) | (?: r e a d \. b i ) | (?: r e a d t h i s \. c a ) | (?: r e a l l y t i n y u r l \. c o m ) | (?: r e d i r \. e c ) | (?: r e d i r e c t s \. c a ) | (?: r e d i r x \. c o m ) | (?: r e t w t \. m e ) | (?: r i \. m s ) | (?: r i c k r o l l \. i t ) | (?: r i z \. g d ) | (?: r t \. n u ) | (?: r u \. l y ) | (?: r u b y u r l \. c o m ) | (?: r u r l \. o r g ) | (?: r w w \. t w ) | (?: s 4 c \. i n ) | (?: s 7 y \. u s ) | (?: s a f e \. m n ) | (?: s a m e u r l \. c o m ) | (?: s d u t \. u s ) | (?: s h a r \. e s ) | (?: s h i n k \. d e ) | (?: s h o r l \. c o m ) | (?: s h o r t \. i e ) | (?: s h o r t \. t o ) | (?: s h o r t l i n k s \. c o .u k ) | (?: s h o r t u r l \. c o m ) | (?: s h o u t \. t o ) | (?: s h o w \. m y ) | (?: s h r i n k i f y \. c o m ) | (?: s h r i n k r \. c o m ) | (?: s h r t \. f r ) | (?: s h r t \. s t ) | (?: s h r t e n \. c o m ) | (?: s h r u n k i n \. c o m ) | (?: s i m u r l \. c o m ) | (?: s l a t e \. m e ) | (?: s m a l l r \. c o m ) | (?: s m s h \. m e ) | (?: s m u r l \. n a m e ) | (?: s n \. i m ) | (?: s n i p r \. c o m ) | (?: s n i p u r l \. c o m ) | (?: s n u r l \. c o m ) | (?: s p 2 \. r o ) | (?: s p e d r \. c o m ) | (?: s r n k \. n e t ) | (?: s r s \. l i ) | (?: s t a r t u r l \. c o m ) | (?: s u \. p r ) | (?: s u r l \. c o .u k ) | (?: s u r l \. h u ) | (?: t \. c n ) | (?: t \. c o ) | (?: t \. l h .c o m ) | (?: t a \. g d ) | (?: t b d \. l y ) | (?: t c r n \. c h ) | (?: t g r \. m e ) | (?: t g r \. p h ) | (?: t i g h t u r l \. c o m ) | (?: t i n i u r i \. c o m ) | (?: t i n y \. c c ) | (?: t i n y \. l y ) | (?: t i n y \. p l ) | (?: t i n y l i n k \. i n ) | (?: t i n y u r i \. c a ) | (?: t i n y u r l \. c o m ) | (?: t l \. g d ) | (?: t m i \. m e ) | (?: t n i j \. o r g ) | (?: t n w \. t o ) | (?: t n y \. c o m ) | (?: t o \. l y ) | (?: t o g o t o \. u s ) | (?: t o t c \. u s ) | (?: t o y s r \. u s ) | (?: t p m \. l y ) | (?: t r \. i m ) | (?: t r a \. k z ) | (?: t r u n c \. i t ) | (?: t w h u b \. c o m ) | (?: t w i r l \. a t ) | (?: t w i t c l i c k s \. c o m ) | (?: t w i t t e r u r l \. n e t ) | (?: t w i t t e r u r l \. o r g ) | (?: t w i t u r l \. d e ) | (?: t w u r l \. c c ) | (?: t w u r l \. n l ) | (?: u \. m a v r e v .c o m ) | (?: u \. n u ) | (?: u 7 6 \. o r g ) | (?: u b 0 \. c c ) | (?: u l u \. l u ) | (?: u p d a t i n g \. m e ) | (?: u r 1 \. c a ) | (?: u r l \. a z ) | (?: u r l \. c o .u k ) | (?: u r l \. i e ) | (?: u r l 3 6 0 \. m e ) | (?: u r l 4 \. e u ) | (?: u r l b o r g \. c o m ) | (?: u r l b r i e f \. c o m ) | (?: u r l c o v e r \. c o m ) | (?: u r l c u t \. c o m ) | (?: u r l e n c o \. d e ) | (?: u r l i \. n l ) | (?: u r l s \. i m ) | (?: u r l s h o r t e n i n g s e r v i c e f o r t w i t t e r \. c o m ) | (?: u r l x \. i e ) | (?: u r l z e n \. c o m ) | (?: u s a t \. l y ) | (?: u s e \. m y ) | (?: v b \. l y ) | (?: v g n \. a m ) | (?: v l \. a m ) | (?: v m \. l c ) | (?: w 5 5 \. d e ) | (?: w a p o \. s t ) | (?: w a p u r l \. c o .u k ) | (?: w i p i \. e s ) | (?: w p \. m e ) | (?: x \. v u ) | (?: x r \. c o m ) | (?: x r l \. i n ) | (?: x r l \. u s ) | (?: x u r l \. e s ) | (?: x u r l \. j p ) | (?: y \. a h o o .i t ) | (?: y a t u c \. c o m ) | (?: y e \. p e ) | (?: y e p \. i t ) | (?: y f r o g \. c o m ) | (?: y h o o \. i t ) | (?: y i y d \. c o m ) | (?: y o u t u \. b e ) | (?: y u a r e l \. c o m ) | (?: z 0 p \. d e ) | (?: z i \. m a ) | (?: z i \. m u ) | (?: z i p m y u r l \. c o m ) | (?: z u d \. m e ) | (?: z u r l \. w s ) | (?: z z \. g d ) | (?: z z a n g \. k r ) | (?: › \. w s ) | (?: ✩ \. w s ) | (?: ✿ \. w s ) | (?: ❥ \. w s ) | (?: ➔ \. w s ) | (?: ➞ \. w s ) | (?: ➡ \. w s ) | (?: ➨ \. w s ) | (?: ➯ \. w s ) | (?: ➹ \. w s ) | (?: ➽ \. w s ) ) \/ [ a - z 0 - 9 ] * / gi
237251 ) ;
@@ -818,8 +832,6 @@ describe('Class Plunker => unit test', function () {
818832 output = _plunker$process2 [ 0 ] ;
819833 embeds = _plunker$process2 [ 1 ] ;
820834
821- console . log ( embeds ) ;
822-
823835 expect$4 ( output ) . to . be . a ( 'string' ) ;
824836 expect$4 ( embeds ) . to . be . a ( 'array' ) ;
825837
@@ -868,10 +880,173 @@ describe('Class Codepen => unit test', function () {
868880 output = _codepen$process2 [ 0 ] ;
869881 embeds = _codepen$process2 [ 1 ] ;
870882
871- console . log ( embeds ) ;
872883 expect$5 ( output ) . to . be . a ( 'string' ) ;
873884 expect$5 ( embeds ) . to . be . a ( 'array' ) ;
874885
875886 expect$5 ( embeds [ 0 ] . text . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( '<div class="ejs-embed ejs-codepen"><iframe scrolling="no" height="500" src="http://codepen.io/enxaneta/embed/meYEzO/?height=500"></iframe></div>' ) ;
876887 } ) ;
888+ } ) ;
889+
890+ var Ideone = function ( _Base ) {
891+ babelHelpers_inherits ( Ideone , _Base ) ;
892+
893+ function Ideone ( input , output , options , embeds ) {
894+ babelHelpers_classCallCheck ( this , Ideone ) ;
895+
896+ var _this = babelHelpers_possibleConstructorReturn ( this , Object . getPrototypeOf ( Ideone ) . call ( this , input , output , options , embeds ) ) ;
897+
898+ _this . regex = / i d e o n e .c o m \/ [ a - z A - Z 0 - 9 ] { 6 } / gi;
899+ _this . service = 'ideone' ;
900+ return _this ;
901+ }
902+
903+ babelHelpers_createClass ( Ideone , [ {
904+ key : 'template' ,
905+ value : function template ( match ) {
906+ return ejs . template . ideone ( match , this . options ) || '<div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/' + match . split ( '/' ) [ 1 ] + '" frameborder="0" height="' + this . options . codeEmbedHeight + '"></iframe></div>' ;
907+ }
908+ } ] ) ;
909+ return Ideone ;
910+ } ( Base ) ;
911+
912+ var expect$6 = chai . expect ;
913+
914+ describe ( 'Class Ideone => unit test' , function ( ) {
915+ describe ( 'test with single matching' , function ( ) {
916+
917+ describe ( 'normal embedding' , function ( ) {
918+
919+ var output = undefined ;
920+ var embeds = [ ] ;
921+ var input = output = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes.Cur luna persuadere?' ;
922+ var ideone = new Ideone ( input , output , options , embeds ) ;
923+
924+ var _ideone$process = ideone . process ( ) ;
925+
926+ var _ideone$process2 = babelHelpers_slicedToArray ( _ideone$process , 2 ) ;
927+
928+ output = _ideone$process2 [ 0 ] ;
929+ embeds = _ideone$process2 [ 1 ] ;
930+
931+ it ( 'should return a valid plunked embedding url' , function ( ) {
932+
933+ expect$6 ( output ) . to . be . a ( 'string' ) ;
934+ expect$6 ( embeds ) . to . be . a ( 'array' ) ;
935+
936+ expect$6 ( embeds [ 0 ] . text . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( '<div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/HH8rmZ" frameborder="0" height="500"></iframe></div>' ) ;
937+ } ) ;
938+ } ) ;
939+
940+ describe ( 'inline embedding' , function ( ) {
941+ it ( 'should return correct result for inline embedding with url embed enabled' , function ( ) {
942+ var output = undefined ;
943+ var embeds = [ ] ;
944+ var opts = cloneObject ( options ) ;
945+ opts . inlineEmbed = 'all' ;
946+
947+ var input = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes.Cur luna persuadere?' ;
948+ output = new Url ( input , opts ) . process ( ) ;
949+ var ideone = new Ideone ( input , output , opts , embeds ) ;
950+
951+ var _ideone$process3 = ideone . process ( ) ;
952+
953+ var _ideone$process4 = babelHelpers_slicedToArray ( _ideone$process3 , 2 ) ;
954+
955+ output = _ideone$process4 [ 0 ] ;
956+ embeds = _ideone$process4 [ 1 ] ;
957+
958+ expect$6 ( embeds ) . to . be . empty ;
959+ expect$6 ( output . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( 'Sunt castores desiderium <a href="http://ideone.com/HH8rmZ" rel="" target="self">http://ideone.com/HH8rmZ</a><div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/" frameborder="0" height="500"></iframe></div> grandis, pius zetaes.Cur luna persuadere?' ) ;
960+ } ) ;
961+
962+ it ( 'should return correct result for inline embedding with url embed disabled' , function ( ) {
963+ var output = undefined ;
964+ var embeds = [ ] ;
965+ var opts = cloneObject ( options ) ;
966+ opts . inlineEmbed = 'all' ;
967+ opts . link = false ;
968+
969+ var input = output = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes.Cur luna persuadere?' ;
970+ var ideone = new Ideone ( input , output , opts , embeds ) ;
971+
972+ var _ideone$process5 = ideone . process ( ) ;
973+
974+ var _ideone$process6 = babelHelpers_slicedToArray ( _ideone$process5 , 2 ) ;
975+
976+ output = _ideone$process6 [ 0 ] ;
977+ embeds = _ideone$process6 [ 1 ] ;
978+
979+ expect$6 ( embeds ) . to . be . empty ;
980+ expect$6 ( output . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( 'Sunt castores desiderium http://ideone.com/HH8rmZ<div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/" frameborder="0" height="500"></iframe></div> grandis, pius zetaes.Cur luna persuadere?' ) ;
981+ } ) ;
982+
983+ it ( 'should return correct result for inline embedding with inlineText and link disabled' , function ( ) {
984+ var output = undefined ;
985+ var embeds = [ ] ;
986+ var opts = cloneObject ( options ) ;
987+ opts . inlineEmbed = 'all' ;
988+ opts . link = false ;
989+ opts . inlineText = false ;
990+
991+ var input = output = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes.Cur luna persuadere?' ;
992+ var ideone = new Ideone ( input , output , opts , embeds ) ;
993+
994+ var _ideone$process7 = ideone . process ( ) ;
995+
996+ var _ideone$process8 = babelHelpers_slicedToArray ( _ideone$process7 , 2 ) ;
997+
998+ output = _ideone$process8 [ 0 ] ;
999+ embeds = _ideone$process8 [ 1 ] ;
1000+
1001+ expect$6 ( embeds ) . to . be . empty ;
1002+ expect$6 ( output . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( 'Sunt castores desiderium <div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/" frameborder="0" height="500"></iframe></div> grandis, pius zetaes.Cur luna persuadere?' ) ;
1003+ } ) ;
1004+
1005+ it ( 'should return correct result for inline embedding with inlineText disabled and link enabled' , function ( ) {
1006+ var output = undefined ;
1007+ var embeds = [ ] ;
1008+ var opts = cloneObject ( options ) ;
1009+ opts . inlineEmbed = 'all' ;
1010+ opts . link = true ;
1011+ opts . inlineText = false ;
1012+
1013+ var input = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes.Cur luna persuadere?' ;
1014+
1015+ output = new Url ( input , opts ) . process ( ) ;
1016+
1017+ var ideone = new Ideone ( input , output , opts , embeds ) ;
1018+
1019+ var _ideone$process9 = ideone . process ( ) ;
1020+
1021+ var _ideone$process10 = babelHelpers_slicedToArray ( _ideone$process9 , 2 ) ;
1022+
1023+ output = _ideone$process10 [ 0 ] ;
1024+ embeds = _ideone$process10 [ 1 ] ;
1025+
1026+ expect$6 ( embeds ) . to . be . empty ;
1027+ expect$6 ( output . replace ( / ( \r \n | \n | \r | \t ) / gm, '' ) ) . to . equal ( 'Sunt castores desiderium <a href="http://ideone.com/HH8rmZ" rel="" target="self"><div class="ejs-ideone ejs-embed"><iframe src="http://ideone.com/embed/" frameborder="0" height="500"></iframe></div></a> grandis, pius zetaes.Cur luna persuadere?' ) ;
1028+ } ) ;
1029+ } ) ;
1030+ } ) ;
1031+
1032+ describe ( 'test with multiple matching' , function ( ) {
1033+
1034+ it ( 'should return correct results for multiple embeds' , function ( ) {
1035+
1036+ var output = undefined ;
1037+ var embeds = [ ] ;
1038+ var input = output = 'Sunt castores desiderium http://ideone.com/HH8rmZ grandis, pius zetaes http://ideone.com/ETAZsa .Cur luna persuadere?' ;
1039+ var ideone = new Ideone ( input , output , options , embeds ) ;
1040+
1041+ var _ideone$process11 = ideone . process ( ) ;
1042+
1043+ var _ideone$process12 = babelHelpers_slicedToArray ( _ideone$process11 , 2 ) ;
1044+
1045+ output = _ideone$process12 [ 0 ] ;
1046+ embeds = _ideone$process12 [ 1 ] ;
1047+
1048+ expect$6 ( embeds ) . to . have . length ( 2 ) ;
1049+ expect$6 ( output ) . to . not . be . undefined ;
1050+ } ) ;
1051+ } ) ;
8771052} ) ;
0 commit comments