Skip to main content

Angularjs protractor e2e test

Was trying to figure out how to do testing on angularjs and i found that there are different ways to do testing, one of which is e2e or end to end testing. With e2e angularjs uses protractor. Here is how i got it working

Installation (i used global install on mac osx)
sudo npm install -g protractor
sudo webdriver-manager update

on your test director copy the reference configuration
cp /usr/local/lib/node_modules/protractor/referenceConf.js protractor-conf.js

Go inside the protractor-conf.js and change the following
{
    chromeDriver: '/usr/local/lib/node_modules/protractor/selenium/chromedriver',
    chromeOnly: true,
    baseUrl: 'http://...url of your project...',
    specs: [
        'e2e/*.js',
    ],
}

as you could see i changed the specs to look at a folder called e2e, what i did is create an e2e folder with a loginSpec.js where i have
describe('Login Page', function() {
    var ptor;

    beforeEach(function() {
        ptor = protractor.getInstance();
        ptor.ignoreSynchronization = true;
    });

    it('should load the home page', function() {
        ptor.get('/login');
        var ele = by.id('login-page');
        expect(ptor.isElementPresent(ele)).toBe(true);
    });

});
then to run it i used on command line
protractor ./tests/protractor-conf.js
Then wait for a few seconds, it should tell you if you have failed test or not

Resources
Practical End-to-End Testing with Protractor

Popular posts from this blog

LaMetric Python App

Creating a personal stock app for LaMetric is super simple, all you need is create an account at developer.lametric.com and have an url with your data. Depending on how you want the data to appear, the format should be in json and how it appears in the creation process.

I used appengine to host my data and used the metric data format


Here is the python code
import urllib2 import json # get stocks data using yahoo finance stocks = ['0002.HK', '0005.HK', '0011.HK', '0992.HK', '0066.HK'] url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + ("%22%2C%22".join(stocks)) + "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json" result = urllib2.urlopen(url) data = json.loads(result.read()) # create frames based on the metric data format frames = [] for stock in data['query']['results']['quote']: …

Winamp Spotify Treasure hunting

Back in the days when WinAmp was huge (So was tripod and geocities), WinAmp users like to share their playlist. Most of these playlist are still available online through googling and a lot of them are actually good throwback playlist. With that in mind, I created a javascript script that would change the winamp playlist (pure text) into a spotify search link.

An example of this, say you liked the 90s rock scene. You would google "winamp playlist pearl jam silverchair" and some of the results will return with the title "Winamp Generated PlayList" and these are what we would like to treasure hunt on. Then
Click on of the result.
Right click anywhere in the page, select Inspect (Chrome) or Inspect Element (Firefox)
Select the Console
Paste this
$$('ul font small')[0].innerHTML = $$('ul font small')[0].innerHTML.split('<br>').map((val) => { return '<a style="color:white" href="spotify:search:' + encodeURIComp…

Laravel 4.2 and App Engine

Was trying to make Laravel work with App Engine when i saw this post Laravel 4 on Google AppEngine for PHP, have tried to make it work but it seems there are some things that needs to be updated to make it work.

First off follow everything the blog until THE MCRYPT PHP EXTENSION then on that part we have to change "require": { "laravel/framework": "4.2.*", "neoxia/laravel-openssl-encryption-42": "dev-master" },
Then continue to follow the blog again. Then on THE LARAVEL 4 LOGGER, change $monolog->pushHandler(new Monolog\Handler\SyslogHandler('intranet', 'user', Monolog\Logger::DEBUG, false, LOG_PID));
Then before executing ./artisan optimize     open LaravelOpensslEncryptionServiceProvider.php, add to the top use Illuminate\Encryption\Encrypter;
Then lasty the part of UNIX_SOCKET, you could ignore it, it seems fixed for 4.2