2013-10-30 19:26:07 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/* vim: set ts=2: */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var  XLSX ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var  fs  =  require ( 'fs' ) ,  assert  =  require ( 'assert' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								describe ( 'source' ,  function ( )  {  it ( 'should load' ,  function ( )  {  XLSX  =  require ( './' ) ;  } ) ;  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var  files  =  ( fs . existsSync ( 'tests.lst' )  ?  fs . readFileSync ( 'tests.lst' ,  'utf-8' ) . split ( "\n" )  :  fs . readdirSync ( 'test_files' ) ) . filter ( function ( x ) { return  x . substr ( - 5 ) == ".xlsx"  ||  x . substr ( - 13 ) == ".xlsx.pending" } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-12-27 03:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								function  normalizecsv ( x )  {  return  x . replace ( /\t/g , "," ) . replace ( /#{255}/g , "" ) . replace ( /"/g , "" ) . replace ( /[\n\r]+/g , "\n" ) . replace ( /\n*$/ , "" ) ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-30 19:26:07 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								function  parsetest ( x ,  wb )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									describe ( x  +  ' should have all bits' ,  function ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-27 03:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										var  sname  =  './test_files/2011/'  +  x  +  '.sheetnames' ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-30 19:26:07 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										it ( 'should have all sheets' ,  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wb . SheetNames . forEach ( function ( y )  {  assert ( wb . Sheets [ y ] ,  'bad sheet '  +  y ) ;  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										it ( 'should have the right sheet names' ,  fs . existsSync ( sname )  ?  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											var  file  =  fs . readFileSync ( sname ,  'utf-8' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											var  names  =  wb . SheetNames . join ( "\n" )  +  "\n" ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-27 03:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											assert . equal ( names ,  file ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-30 19:26:07 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										}  :  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									describe ( x  +  ' should generate correct output' ,  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wb . SheetNames . forEach ( function ( ws ,  i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											var  name  =  ( './test_files/'  +  x  +  '.'  +  i  +  '.csv' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											it ( '#'  +  i  +  ' ('  +  ws  +  ')' ,  fs . existsSync ( name )  ?  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												var  file  =  fs . readFileSync ( name ,  'utf-8' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												var  csv  =  XLSX . utils . make _csv ( wb . Sheets [ ws ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-27 03:15:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												assert . equal ( normalizecsv ( csv ) ,  normalizecsv ( file ) ,  "CSV badness" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-30 19:26:07 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											}  :  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								describe ( 'should parse test files' ,  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									files . forEach ( function ( x )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										it ( x ,  x . substr ( - 8 )  ==  ".pending"  ?  null  :  function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											var  wb  =  XLSX . readFile ( './test_files/'  +  x ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											parsetest ( x ,  wb ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-15 07:26:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								describe ( 'should have comment as part of cell\'s properties' ,  function ( ) { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-18 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									var  ws ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									before ( function ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										XLSX  =  require ( './xlsx' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-16 03:42:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										var  wb  =  XLSX . readFile ( './test_files/apachepoi_SimpleWithComments.xlsx' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-15 07:26:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										var  sheetName  =  'Sheet1' ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-18 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										ws  =  wb . Sheets [ sheetName ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									it ( 'Parse comments.xml and insert into cell' , function ( ) { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-15 07:26:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										assert . equal ( ws . B1 . c . length ,  1 , "must have 1 comment" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-18 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										assert . equal ( ws . B1 . c [ 0 ] . t ,  "Yegor Kozlov:\r\nfirst cell" ,  "must have the concatenated texts" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										assert . equal ( ws . B1 . c [ 0 ] . r ,  '<span style="font-weight: bold;">Yegor Kozlov:</span><span style=""><br/>first cell</span>' ,  "must have the html representation" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										assert . equal ( ws . B1 . c [ 0 ] . a ,  "Yegor Kozlov" , "must have the same author" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-15 07:26:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ) ;