import { safePhpUnserialize } from './utils' const bigS = `a:4:{s:8:"template";s:13:"blocksy-child";s:8:"site_url";s:18:"http://51443.local";s:4:"mods";a:9:{i:0;b:0;s:18:"nav_menu_locations";a:0:{}s:18:"custom_css_post_id";i:16;s:8:"facebook";s:47:"https://facebook.com/PinnacleRealEstateAcademy/";s:9:"instagram";s:48:"https://instagram.com/pinnaclerealestateacademy/";s:7:"twitter";s:26:"https://twitter.com/PREAsc";s:4:"yelp";s:62:"https://yelp.com/biz/pinnacle-real-estate-academy-myrtle-beach";s:7:"youtube";s:56:"https://www.youtube.com/channel/UC-FBHornBB7EULvMFsEvEwg";s:25:"header_after_body_scripts";s:344:"";}s:6:"wp_css";s:212:".ct-shortcuts-bar { left: 35%; right: 10%; } .acsb-trigger{ box-shadow: 0px 3px 5px 0px; } .ct-service-box:hover p, .ct-service-box:hover h3, .ct-service-box:hover .fas { color: #fff; transition: color .3s; }";} ` describe('safePhpUnserialize', () => { it('should correctly unserialize a simple PHP serialized string', () => { const serialized = 's:11:"Hello World";' const result = safePhpUnserialize(serialized) expect(result).toBe('Hello World') }) it('should correctly unserialize a PHP serialized array', () => { const serialized = 'a:3:{i:0;s:3:"foo";i:1;s:3:"bar";i:2;s:3:"baz";}' const result = safePhpUnserialize(serialized) expect(result).toEqual(['foo', 'bar', 'baz']) }) it('should correctly unserialize a PHP serialized object', () => { const result = safePhpUnserialize(bigS) expect(result.mods).toBeTruthy() }) it('should correctl handle string with incorrect length', () => { // it's supposed to be 11, but it's actually 15 const serialized = 's:15:"Hello World";' const result = safePhpUnserialize(serialized) expect(result).toEqual('Hello World') }) })