HEX
Server: LiteSpeed
System: Linux server342.web-hosting.com 4.18.0-553.124.4.lve.el8.x86_64 #1 SMP Fri May 15 13:02:13 UTC 2026 x86_64
User: ksonpoau (1099)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //home/ksonpoau/www/wp-content/plugins/extendify/tests/unit/Shared/lib/embedded-guard.test.js
import { isEmbedded } from '@shared/lib/embedded-guard';

describe('isEmbedded', () => {
	it('reports not-embedded on a top-level window (self === top)', () => {
		const win = {};
		win.self = win;
		win.top = win;
		expect(isEmbedded(win)).toBe(false);
	});

	it('reports embedded when framed (self !== top)', () => {
		const win = { self: {}, top: {} };
		expect(isEmbedded(win)).toBe(true);
	});

	it('treats a cross-origin parent (top access throws) as embedded', () => {
		const win = { self: {} };
		Object.defineProperty(win, 'top', {
			get() {
				throw new Error('SecurityError: cross-origin frame');
			},
		});
		expect(isEmbedded(win)).toBe(true);
	});

	it('defaults to the real (top-level) window → not embedded', () => {
		expect(isEmbedded()).toBe(false);
	});
});