diff --git a/src/index.html b/src/index.html index 36551e4..4af2fe0 100644 --- a/src/index.html +++ b/src/index.html @@ -179,7 +179,7 @@ {foreach op in m.operands} - + diff --git a/tests/integration/spec.js b/tests/integration/spec.js index 46b07ad..2414b7d 100644 --- a/tests/integration/spec.js +++ b/tests/integration/spec.js @@ -1,6 +1,8 @@ +browser.ignoreSynchronization = true; var By = protractor.By; var driver = browser.driver; var appUrl = 'http://localhost:63342/BitwiseCmd/src/'; +var Key = protractor.Key; describe('a quick test', function(){ it('should be true', function(){ @@ -18,12 +20,90 @@ describe('launch of application', function() { it('should have no errors title', function() { driver.get(appUrl).then(function() { driver.findElements(By.css('.result .error')).then(function(els) { - expect(els.length).toBe(0, "There should be no errors on autolaunch"); + expect(els.length).toBe(0, "There should be no errors on auto launch"); }); }); }); + it('should execute clear command', function() { + driver.get(appUrl) + .then(function() { return sendCommand('clear')}) + .then(function () { + console.log('before assert'); - //el.sendKey('asd'); - //expect(el.text()).toBe('asd') -}); \ No newline at end of file + driver.findElements(By.css('.result')).then(function(els) { + expect(els.length).toBe(0, "There should be no results after clear"); + }); + }); + }); + + it('should execute list of commands without errors', function() { + + driver.get(appUrl) + .then(function() { return sendCommand('clear')}) + .then(function() { return sendCommand('1')}) + .then(function() { return sendCommand('1|2')}) + .then(function() { return sendCommand('1^2')}) + .then(function() { return sendCommand('0x1>>>0xf')}) + .then(function() { return sendCommand('0x1 0xf')}) + .then(function() { return sendCommand('0x1 | 0xf')}) + .then(function() { return sendCommand('0x1 ^ 123')}) + .then(assertNoErrors); + }); + + it('should execute list of numbers', function() { + + driver.get(appUrl) + .then(function() { return sendCommand('clear')}) + .then(function() { return sendCommand('3 0xf')}) + .then(assertNoErrors) + .then(function() { + return assertBitwiseNumbersResults(driver, + [{ label: '3', bin:'00000011', other: '0x3'}, + { label: '0xf', bin:'00001111', other: '15'}]) + }); + }); +}); + +function sendCommand(cmd) { + return driver.findElement(By.id('in')).then(function (el) { + return el.sendKeys(cmd + Key.ENTER); + }); +} + +function assertNoErrors(cmd) { + return driver.findElements(By.css('.result .error')).then(function(els) { + expect(els.length).toBe(0, "There should be no errors"); + }); +} + +function assertBitwiseNumbersResults(contaier, array) { + + return contaier.findElement(By.css('.expression')).then(function (tableExpr){ + return tableExpr.findElements(By.tagName('tr')).then(function(rows) { + expect(rows.length).toBe(array.length, 'Rows number mismatch'); + + var all= null, cur; + for(var i=0; i
{op.input}@{m.bitsSize}{op.input} {op.bin.padLeft(m.bitsSize, '0')} {op.other}