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}
- | {op.input}@{m.bitsSize} |
+ {op.input} |
{op.bin.padLeft(m.bitsSize, '0')} |
{op.other} |
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