| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							
- var t = require('assert')
 
- module.exports = ({advanced, content}) => {
 
-   before(async () => {
 
-     await advanced.bringToFront()
 
-     // remove origin
 
-     if (await advanced.evaluate(() => Object.keys(state.origins).length > 1)) {
 
-       // expand origin
 
-       if (!await advanced.evaluate(() => document.querySelector('.m-list li:nth-of-type(2)').classList.contains('m-expanded'))) {
 
-         await advanced.click('.m-list li:nth-of-type(2)')
 
-       }
 
-       await advanced.click('.m-list li:nth-of-type(2) .m-footer .m-button')
 
-     }
 
-     // add origin
 
-     await advanced.select('.m-select', 'http')
 
-     await advanced.type('[type=text]', 'localhost:3000')
 
-     await advanced.click('button')
 
-     await advanced.waitFor(200)
 
-     // expand origin
 
-     if (!await advanced.evaluate(() => document.querySelector('.m-list li:nth-of-type(2)').classList.contains('m-expanded'))) {
 
-       await advanced.click('.m-list li:nth-of-type(2)')
 
-     }
 
-     // enable header detection
 
-     if (!await advanced.evaluate(() => state.header)) {
 
-       await advanced.click('.m-switch')
 
-     }
 
-     // enable path matching
 
-     await advanced.evaluate(() => {
 
-       document.querySelector('.m-list li:nth-of-type(2) input').value = 'windows-1251'
 
-       document.querySelector('.m-list li:nth-of-type(2) input').dispatchEvent(new Event('keyup'))
 
-     })
 
-     // there is debounce timeout of 750ms in the options UI
 
-     await advanced.waitFor(800)
 
-   })
 
-   describe('incorrect encoding', () => {
 
-     before(async () => {
 
-       // go to page serving windows-1251 encoded string
 
-       // with UTF-8 content-type charset
 
-       await content.goto('http://localhost:3000/windows-1251')
 
-       await content.bringToFront()
 
-       await content.waitFor(200)
 
-     })
 
-     it('use encoding set by the server', async () => {
 
-       t.equal(
 
-         await content.evaluate(() => document.charset),
 
-         'UTF-8',
 
-         'chrome should pick the encoding from the content-type charset'
 
-       )
 
-       t.equal(
 
-         await content.evaluate(() => document.querySelector('#_html p').innerText),
 
-         '�������',
 
-         'text should be decoded incorrectly'
 
-       )
 
-     })
 
-   })
 
-   describe('correct encoding', () => {
 
-     before(async () => {
 
-       await advanced.bringToFront()
 
-       // set encoding
 
-       await advanced.select('.m-list li:nth-of-type(2) .m-encoding select', 'Windows-1251')
 
-       // go to page serving windows-1251 encoded string
 
-       // with windows-1251 content-type charset
 
-       await content.goto('http://localhost:3000/windows-1251')
 
-       await content.bringToFront()
 
-       await content.waitFor(200)
 
-     })
 
-     it('use encoding set for the origin', async () => {
 
-       t.equal(
 
-         await content.evaluate(() => document.charset),
 
-         'windows-1251',
 
-         'the content-type charset should be overridden'
 
-       )
 
-       t.equal(
 
-         await content.evaluate(() => document.querySelector('#_html p').innerText),
 
-         'здрасти',
 
-         'text should be decoded correctly'
 
-       )
 
-     })
 
-   })
 
-   describe('persist state', () => {
 
-     before(async () => {
 
-       await advanced.bringToFront()
 
-       await advanced.reload()
 
-       await advanced.waitFor(200)
 
-       // expand origin
 
-       await advanced.click('.m-list li:nth-of-type(2)')
 
-     })
 
-     it('reload', async () => {
 
-       t.equal(
 
-         await advanced.evaluate(() =>
 
-           document.querySelector('.m-list li:nth-of-type(2) .m-encoding select').value
 
-         ),
 
-         'Windows-1251',
 
-         'should persist the selected encoding'
 
-       )
 
-     })
 
-   })
 
- }
 
 
  |