| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import Popup from '../src/popup';
- let interval;
- let window;
- let popup;
- describe('Popup', () => {
- beforeEach(angular.mock.inject(($interval, $window, $q) => {
- interval = $interval;
- window = $window;
- popup = new Popup($interval, $window, $q);
- }));
- it('should be defined', () => {
- expect(popup).toBeDefined();
- });
- it('should stringify popup options', () => {
- const options = { width: 481, height: 269 };
- const stringOptions = popup.stringifyOptions(options);
- expect(stringOptions).toBe('width=481,height=269');
- });
- it('should open a new popup', () => {
- spyOn(window, 'open');
- popup.open('about:blank', 'test', { width: 500, height: 500 });
- interval.flush(300);
- expect(window.open).toHaveBeenCalled();
- });
- it('should poll popup', () => {
- const open = popup.polling();
- interval.flush(300);
- expect(angular.isObject(open)).toBe(true);
- });
- it('should handle the case when popup redirect has occured', () => {
- popup.popup = {
- location: {
- host: document.location.host,
- search: '?code=foo_query',
- hash: '#code=foo_hash'
- }
- };
- const open = popup.polling();
- interval.flush(300);
- expect(angular.isObject(open)).toBe(true);
- });
- it('should handle the case when popup redirect has occured but no parameters are set', () => {
- popup.popup = {
- location: {
- host: document.location.host
- }
- };
- const open = popup.polling();
- let error = null;
- open.catch((err) => {
- error = err;
- });
- interval.flush(300);
- expect(error).toBeDefined();
- });
- it('should handle the case when popup is closed', () => {
- const open = popup.polling();
- let error = null;
- open.catch((err) => {
- error = err;
- });
- interval.flush(300);
- expect(error).toBeDefined();
- });
- });
|