- None Found
You should never use
==for string comparison.
$something = 0; echo ('password123' == $something) ? 'true' : 'false';
Just run the above code and you’ll see why.
$something = 0; echo ('password123' === $something) ? 'true' : 'false';
The reason is that when using ‘==’ it will try to convert the string to a number, and match it!
Now where’s the emoji for facepalm?
I’m still setting up for BDD testing. All the basics are already there (see previous post).
I spoke quickly about setting up WPBrowser: WordPress specific set of extensions for Codeception. Here’s what to do (from the Readme):
The added bonus, if you’re using PhpStorm is that you will also get the related auto-complete package. And there’s plenty of functions that really speed things up.
Next for me was setting up MailCatcher
MailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface
You need mailcatcher if you’re testing sending email out from the site. Here’s what I used:
\curl -sSL https://get.rvm.io | bash
rvm install 2.2.2
rvm default@mailcatcher --create do gem install mailcatcher
rvm wrapper default@mailcatcher --no-prefix mailcatcher catchmail
You also need to add the following in /etc/php5/apache2/php.ini:
sendmail_path = /usr/local/rvm/wrappers/default/catchmail -f email@example.com #
(and restart apache after that)
Next you need to install the codeception mailcatcher module using composer
And set the configuration inacceptance.suite.yml
You might get by with only that, but I had trouble with mail being routed through special plugins we use at work, so I had to install the ‘mailcatcher’ plugin
After that it was smooth testing …
I started working on automating testing ( BDD style ) a few weeks ago, and it took me a while to go over the available tools and options. The obvious starting point was cucumber. Which then led me to Behat, which then took me to Codeception.
When someone tells you it works out of the box, you should always take that with a pinch of salt. Of course, if you follow the quickstart page, it will take you through the different steps that you would take to unwrap the shrink around the box, open it up, take the protective foam bar out, … You get my drift.
Turns out you would need a few more ingredients before you could start testing. Here’s what I needed:
And, if you’re like me, going to test WordPress sites themes and plugins, you might find the WPBrowser very useful.
Here’s a list of the steps I took locally on an Ubuntu 15.10 machine (that already had Google Chrome installed)
If you didn’t have Chrome (or installing on a server):
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb dpkg -i google-chrome-stable_current_amd64.deb apt-get install -f # dirty shortcut to get apt to install dependencies for you! wget http://goo.gl/rQhaxb -O /opt/selenium-server-standalone.jar sudo apt-get install xvfb alias run_selenium="DISPLAY=:1 xvfb-run java -jar /opt/selenium-server-standalone.jar" wget -N http://chromedriver.storage.googleapis.com/2.20/chromedriver_linux64.zip unzip chromedriver_linux64.zip chmod +x chromedriver sudo mv -f chromedriver /usr/local/share/chromedriver sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
A couple of parting notes:
I’m assuming you’re running NetworkManager here, you’ve already set up your wireless connection using DHCP and you’re talking about IPv4 here.
While you can’t configure the static addresses in NetworkManager GUI, there’s a hack possible.
- Find the connection UUID of the connection configured
$ nmcli con
- Add a script in
/etc/NetworkManager/dispatcher.d/, containing this starting point:
#!/bin/bash WLAN_DEV=wlan0 MYCON_UUID=31c48409-e77a-46e0-8cdc-f4c04b978901 if [ "$CONNECTION_UUID" == "$MYCON_UUID" ]; then # add alias for Network 1: 192.168.0.123/24 ifconfig $WLAN_DEV:0 192.168.0.123 netmask 255.255.255.0 up # add alias for Network 2: 192.168.1.123/24 ifconfig $WLAN_DEV:1 192.168.1.123 netmask 255.255.255.0 up fi
- Make sure it has the right permissions (
chmod +x /path/to/script.sh) and restart NetworkManager:
$ sudo service network-manager restart
Now when you connect to your wireless connection, it should add the two aliases (check with
That’s the Italian cuisine for you: simple ingredients that make for a great dish. And we love having all the tools and ingredients at our fingertips, don’t we!
I picked 70gr of my favorite pasta from the cupboard, put that in salted boiling water for 8 minutes. Drained the water and added a couple of tablespoons of Ragù we made on Monday. Then a couple of tablespoons of baked beans (also prepared in batch last week). Stir for 5 minutes to get the right temperature, and voilà!
Honestly, how hard can it be to make a good meal and enjoy it. All in under 20 minutes. And I had the time to clean the dishes and write this blog too!