diff --git a/README.md b/README.md
index 1a1e823..c4e963f 100644
--- a/README.md
+++ b/README.md
@@ -21,9 +21,9 @@
 #         under the License.
 -->
 
-|Android 4.4|Android 5.1|iOS 9.3|iOS 10.0|Windows 10 Store|Travis CI|
-|:-:|:-:|:-:|:-:|:-:|:-:|
-|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-vibration/)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-vibration.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-vibration)|
+|Android 4.4|Android 5.1|Android 6.0|iOS 9.3|iOS 10.0|Windows 10 Store|Travis CI|
+|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
+|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-6.0,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-6.0,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-vibration/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-vibration)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-vibration/)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-vibration.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-vibration)|
 
 # cordova-plugin-vibration
 
@@ -69,7 +69,7 @@
 
 This function has three different functionalities based on parameters passed to it.
 
-###Standard vibrate
+### Standard vibrate
 
 Vibrates the device for a given amount of time.
 
@@ -82,7 +82,7 @@
 
 -__time__: Milliseconds to vibrate the device. _(Number)_
 
-####Example
+#### Example
 
     // Vibrate for 3 seconds
     navigator.vibrate(3000);
@@ -90,26 +90,26 @@
     // Vibrate for 3 seconds
     navigator.vibrate([3000]);
 
-####iOS Quirks
+#### iOS Quirks
 
 - __time__: Ignores the specified time and vibrates for a pre-set amount of time.
 
     navigator.vibrate(3000); // 3000 is ignored
 
-####Windows and Blackberry Quirks
+#### Windows and Blackberry Quirks
 
 - __time__: Max time is 5000ms (5s) and min time is 1ms
 
     navigator.vibrate(8000); // will be truncated to 5000
 
-###Vibrate with a pattern (Android and Windows only)
+### Vibrate with a pattern (Android and Windows only)
 Vibrates the device with a given pattern
 
     navigator.vibrate(pattern);
 
 - __pattern__: Sequence of durations (in milliseconds) for which to turn on or off the vibrator. _(Array of Numbers)_
 
-####Example
+#### Example
 
     // Vibrate for 1 second
     // Wait for 1 second
@@ -118,11 +118,11 @@
     // Vibrate for 5 seconds
     navigator.vibrate([1000, 1000, 3000, 1000, 5000]);
 
-####Windows Phone 8 Quirks
+#### Windows Phone 8 Quirks
 
 - vibrate(pattern) falls back on vibrate with default duration
 
-###Cancel vibration (not supported in iOS)
+### Cancel vibration (not supported in iOS)
 
 Immediately cancels any currently running vibration.
 
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 4bf45c4..18b2873 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -20,6 +20,10 @@
 -->
 # Release Notes
 
+### 2.1.5 (Apr 27, 2017)
+* [CB-12622](https://issues.apache.org/jira/browse/CB-12622) Added **Android 6.0** build badge to `README`
+* [CB-12685](https://issues.apache.org/jira/browse/CB-12685) added `package.json` to tests folder
+
 ### 2.1.4 (Feb 28, 2017)
 * fix `vibrateWithPattern`, function doesn't update the pattern variable reference
 * [CB-12369](https://issues.apache.org/jira/browse/CB-12369) Add plugin typings from `DefinitelyTyped` 
diff --git a/package.json b/package.json
index ae9abc3..9790ae5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova-plugin-vibration",
-  "version": "2.1.4",
+  "version": "2.1.5",
   "description": "Cordova Vibration Plugin",
   "types": "./types/index.d.ts",
   "cordova": {
diff --git a/plugin.xml b/plugin.xml
index 04c798e..96e0827 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -21,7 +21,7 @@
 <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
     xmlns:android="http://schemas.android.com/apk/res/android"
     id="cordova-plugin-vibration"
-    version="2.1.4">
+    version="2.1.5">
 
     <name>Vibration</name>
     <description>Cordova Vibration Plugin</description>
diff --git a/tests/package.json b/tests/package.json
new file mode 100644
index 0000000..779f12c
--- /dev/null
+++ b/tests/package.json
@@ -0,0 +1,14 @@
+{
+  "name": "cordova-plugin-vibration-tests",
+  "version": "2.1.5-dev",
+  "description": "",
+  "cordova": {
+    "id": "cordova-plugin-vibration-tests",
+    "platforms": []
+  },
+  "keywords": [
+    "ecosystem:cordova"
+  ],
+  "author": "",
+  "license": "Apache 2.0"
+}
diff --git a/tests/plugin.xml b/tests/plugin.xml
index 485ddd0..ffe5da5 100644
--- a/tests/plugin.xml
+++ b/tests/plugin.xml
@@ -22,7 +22,7 @@
     xmlns:rim="http://www.blackberry.com/ns/widgets"
     xmlns:android="http://schemas.android.com/apk/res/android"
     id="cordova-plugin-vibration-tests"
-    version="2.1.4">
+    version="2.1.5">
     <name>Cordova Vibration Plugin Tests</name>
     <license>Apache 2.0</license>
 
diff --git a/www/vibration.js b/www/vibration.js
index d663dc7..409be0b 100644
--- a/www/vibration.js
+++ b/www/vibration.js
@@ -108,7 +108,7 @@
      */
     vibrateWithPattern: function(pattern, repeat) {
         repeat = (typeof repeat !== "undefined") ? repeat : -1;
-        var pattern = pattern.unshift(0); //add a 0 at beginning for backwards compatibility from w3c spec
+        pattern = pattern.unshift(0); //add a 0 at beginning for backwards compatibility from w3c spec
         exec(null, null, "Vibration", "vibrateWithPattern", [pattern, repeat]);
     },
 
