| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 | 
							
- var t = require('assert')
 
- module.exports = ({popup}) => {
 
-   before(async () => {
 
-     await popup.bringToFront()
 
-   })
 
-   it('button - raw', async () => {
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         state.raw
 
-       ),
 
-       false,
 
-       'state.raw should equal false'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         document.querySelector('.m-button:first-child').innerText.toLowerCase()
 
-       ),
 
-       'markdown',
 
-       'button text should equal markdown'
 
-     )
 
-   })
 
-   it('tabs', async () => {
 
-     t.equal(
 
-       await popup.evaluate(() =>
 
-         state.tab
 
-       ),
 
-       'theme',
 
-       'state.tab should equal theme'
 
-     )
 
-     t.deepStrictEqual(
 
-       await popup.evaluate(() =>
 
-         state.tabs
 
-       ),
 
-       await popup.evaluate(() =>
 
-         Array.from(document.querySelectorAll('.m-tabs a'))
 
-           .map((tab) => tab.innerText.trim().toLowerCase())
 
-       ),
 
-       'state.tabs should be identical to dom tabs'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         localStorage.getItem('tab')
 
-       ),
 
-       null,
 
-       'localStorage tab key should be null'
 
-     )
 
-   })
 
-   it('tab - theme', async () => {
 
-     t.equal(
 
-       await popup.evaluate(() =>
 
-         state.theme
 
-       ),
 
-       'github',
 
-       'state.theme should equal github'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         document.querySelector('.m-panel:first-child')
 
-           .classList.contains('is-active')
 
-       ),
 
-       true,
 
-       'the first tab panel should be active'
 
-     )
 
-     t.deepStrictEqual(
 
-       await popup.evaluate(() =>
 
-         state.themes
 
-       ),
 
-       await popup.evaluate(() =>
 
-         Array.from(document.querySelectorAll('.m-panel:first-child select option'))
 
-           .map((option) => option.innerText)
 
-       ),
 
-       'state.themes should be identical to dom themes'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         document.querySelector('.m-panel:first-child select').selectedIndex
 
-       ),
 
-       0,
 
-       'dom select option should be 0'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         state.themes.length
 
-       ),
 
-       20,
 
-       'state.themes count should be 20'
 
-     )
 
-   })
 
-   it('tab - compiler', async () => {
 
-     await popup.click('.m-tabs a:nth-of-type(2)')
 
-     t.equal(
 
-       await popup.evaluate(() =>
 
-         state.tab
 
-       ),
 
-       'compiler',
 
-       'state.tab should equal compiler'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         localStorage.getItem('compiler')
 
-       ),
 
-       null,
 
-       'localStorage compiler key should be null'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         document.querySelector('.m-panel:nth-of-type(2)')
 
-           .classList.contains('is-active')
 
-       ),
 
-       true,
 
-       'the second tab panel should be active'
 
-     )
 
-     t.deepStrictEqual(
 
-       await popup.evaluate(() =>
 
-         state.compilers
 
-       ),
 
-       await popup.evaluate(() =>
 
-         Array.from(document.querySelectorAll('.m-panel:nth-of-type(2) select option'))
 
-           .map((option) => option.innerText)
 
-       ),
 
-       'state.compilers should be identical to dom compilers'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         document.querySelector('.m-panel:first-child select').selectedIndex
 
-       ),
 
-       0,
 
-       'dom select option should be 0'
 
-     )
 
-     t.strictEqual(
 
-       await popup.evaluate(() =>
 
-         state.compilers.length
 
-       ),
 
-       2,
 
-       'state.compilers length should equal 2'
 
-     )
 
-     t.deepStrictEqual(
 
-       await popup.evaluate(() =>
 
-         Object.keys(state.options)
 
-         .filter((key) => typeof state.options[key] === 'boolean')
 
-         .reduce((obj, key) => (obj[key] = state.options[key], obj), {})
 
-       ),
 
-       await popup.evaluate(() =>
 
-         Array.from(document.querySelectorAll('.m-panel:nth-of-type(2) label'))
 
-           .reduce((all, option) => (
 
-             all[option.querySelector('span').innerText.trim()] =
 
-             option.classList.contains('is-checked'), all
 
-           ), {})
 
-       ),
 
-       'state.options should equal dom compiler options'
 
-     )
 
-   })
 
-   it('tab - content', async () => {
 
-     await popup.click('.m-tabs a:nth-of-type(3)')
 
-     t.equal(
 
-       await popup.evaluate(() =>
 
-         state.tab
 
-       ),
 
-       'content',
 
-       'state.tab should equal content'
 
-     )
 
-     t.deepStrictEqual(
 
-       await popup.evaluate(() =>
 
-         state.content
 
-       ),
 
-       await popup.evaluate(() =>
 
-         Array.from(document.querySelectorAll('.m-panel:nth-of-type(3) label'))
 
-           .reduce((all, option) => (
 
-             all[option.querySelector('span').innerText.trim()] =
 
-             option.classList.contains('is-checked'), all
 
-           ), {})
 
-       ),
 
-       'state.content should equal dom content options'
 
-     )
 
-   })
 
- }
 
 
  |