import {
isRestrictedUrl,
isUnsupportedPageUrl,
RESTRICTED_PROTOCOLS,
} from '@/utils/restrictedUrls';
describe('restrictedUrls', () => {
describe('isRestrictedUrl', () => {
it('应识别受限协议页面', () => {
expect(isRestrictedUrl('chrome://settings')).toBe(true);
expect(isRestrictedUrl('chrome-extension://abc123/background.html')).toBe(true);
expect(isRestrictedUrl('about:blank')).toBe(true);
expect(isRestrictedUrl('edge://settings')).toBe(true);
expect(isRestrictedUrl('brave://settings')).toBe(true);
expect(isRestrictedUrl('view-source:https://example.com')).toBe(true);
expect(isRestrictedUrl('file:///path/to/file')).toBe(true);
expect(isRestrictedUrl('data:text/html,
Hello
')).toBe(true);
});
it('应允许普通 http/https 页面', () => {
expect(isRestrictedUrl('http://example.com')).toBe(false);
expect(isRestrictedUrl('https://example.com')).toBe(false);
});
it('空 URL 应视为受限', () => {
expect(isRestrictedUrl(undefined)).toBe(true);
expect(isRestrictedUrl('')).toBe(true);
});
});
describe('isUnsupportedPageUrl', () => {
it('应通过 protocol 精确匹配识别受限页面', () => {
expect(isUnsupportedPageUrl('chrome://newtab/')).toBe(true);
expect(isUnsupportedPageUrl('brave://settings/')).toBe(true);
expect(isUnsupportedPageUrl('https://example.com')).toBe(false);
});
it('无效 URL 应视为不支持', () => {
expect(isUnsupportedPageUrl(undefined)).toBe(true);
expect(isUnsupportedPageUrl('not-a-url')).toBe(true);
});
});
it('RESTRICTED_PROTOCOLS 应包含 storage cleaner 与右键恢复所需协议', () => {
expect(RESTRICTED_PROTOCOLS).toEqual(
expect.arrayContaining(['brave:', 'view-source:', 'file:', 'data:']),
);
});
});