electron/spec/api-image-view-spec.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

87 lines
2.7 KiB
TypeScript
Raw Normal View History

import { nativeImage } from 'electron/common';
import { BaseWindow, BrowserWindow, ImageView } from 'electron/main';
import { expect } from 'chai';
import * as path from 'node:path';
import { closeAllWindows } from './lib/window-helpers';
describe('ImageView', () => {
afterEach(async () => {
await closeAllWindows();
});
it('can be instantiated with no arguments', () => {
// eslint-disable-next-line no-new
new ImageView();
});
it('can set an empty NativeImage', () => {
const view = new ImageView();
const image = nativeImage.createEmpty();
view.setImage(image);
});
it('can set a NativeImage', () => {
const view = new ImageView();
const image = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'logo.png'));
view.setImage(image);
});
it('can change its NativeImage', () => {
const view = new ImageView();
const image1 = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'logo.png'));
const image2 = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'capybara.png'));
view.setImage(image1);
view.setImage(image2);
});
it('can be embedded in a BaseWindow', () => {
const w = new BaseWindow({ show: false });
const view = new ImageView();
const image = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'capybara.png'));
view.setImage(image);
w.setContentView(view);
w.setContentSize(image.getSize().width, image.getSize().height);
view.setBounds({
x: 0,
y: 0,
width: image.getSize().width,
height: image.getSize().height
});
});
it('can be embedded in a BrowserWindow', () => {
const w = new BrowserWindow({ show: false });
const image = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'logo.png'));
const view = new ImageView();
view.setImage(image);
w.contentView.addChildView(view);
w.setContentSize(image.getSize().width, image.getSize().height);
view.setBounds({
x: 0,
y: 0,
width: image.getSize().width,
height: image.getSize().height
});
expect(w.contentView.children).to.include(view);
});
it('can be removed from a BrowserWindow', async () => {
const w = new BrowserWindow({ show: false });
const image = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'logo.png'));
const view = new ImageView();
view.setImage(image);
w.contentView.addChildView(view);
expect(w.contentView.children).to.include(view);
await w.loadFile(path.join(__dirname, 'fixtures', 'api', 'blank.html'));
w.contentView.removeChildView(view);
expect(w.contentView.children).to.not.include(view);
});
});