Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FORKED FROM

https://github.com/Lullabot/drupal-boilerplate

Automated testing

This directory contains CasperJS tests that ensure the stability of the site.

Installation

Requirements

  • Python 2.6 or greater.
  • PhantomJS 1.9.2.
  • CasperJS 1.1-beta3.

OSX - Homebrew

Homebrew will install the phantomjs dependency automatically.

brew install casperjs --devel

Manual installation

Python

Python is already installed in most platforms. Check the pyhon version with the following command:

python --version

If the above output is less than 2.6, go to https://www.python.org/download, find the link for your platform at the 2.7 section (even though CasperJS seems to work on Python 3 we have not tested it yet).

You can find further installation tips at http://docs.casperjs.org/en/latest/installation.html#prerequisites

CasperJS

cd /usr/share
sudo git clone git://github.com/n1k0/casperjs.git
cd casperjs
git checkout 1.1-beta3
sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs

PhantomJS

Download phantomjs 1.9.2 http://phantomjs.org/download.html to /usr/share

cd /usr/share/phantomjs-1.9.2-linux-x86_64/bin
sudo ln -sf `pwd`/phantomjs /usr/local/bin/phantomjs

Verify your installation

When running casperjs, the output should be:

casperjs
CasperJS version 1.1.0-beta3 at /usr/share/casperjs, using phantomjs version 1.9.2

Running tests

Assuming your local environment is set up at http://drupal.local, all tests may be run with the following command:

cd path-to-drupal-root
drush casperjs --url=http://drupal.local

You can also run a specific test by giving it as an argument to the command:

drush casperjs --url=http://drupal.local

NOTEdrush casperjs is a wrapper for casperjs which sets some useful defaults when running tests for your Drupal site. Run drush casperjs -h for a list of all the available options and arguments.

Writing tests

Tests are JavaScript files which are located at the tests directory. They can be organized either by which aspect of the site they test (the homepage, the contact form, the editorial workflow) or by mapping its name with a module so it tests the functionality added by that particular module. The choice is yours to take.

In order to write a new test, copy any of the existing ones and use it as a template. Be sure to read through the includes such as drush/commands/casperjs/includes/common.js and drush/commands/casperjs/includes/session.js to find if there are any helper functions you should be aware of in addition to the ones provided by CasperJS.

Some useful resources for writing tests are:

  • Navigation steps let you wait for certain events such a page getting fully rendered before running assertions over it.
  • The casper object has commands to interact with the browser such as opening a URL or filling out a form.
  • The test object contains methods to run assertions over the current context.
  • drush/commands/casperjs/includes/common.js has a list of useful methods to navigate through a Drupal project. Rely on these methods as much as possible in order to simplify your testing code.
  • drush/commands/casperjs/includes/session.js implements session management so you can swap from an anonymous user to an authentcated user in just one step.

Cookies

Some tests like will need an authenticated user to work with order to test the backend. The drush casperjs command creates a temporary cookies file at the temorary directory while running tests to store cookie information and deletes it the next time tests are run.

If you need session management in your test call casper.boilerRun() to run your test so that all opened sessions are closed for the next test run.

Tips

Taking screenshots

You can take a screenshot and capture markup with casper.boilerCapture('my-unique-string');. This is perfectly fine to commit to your test suite, as this will do nothing unless you specifically configured your environment to actually save these files. There are three ways to do this:

The first is to turn on capturing by exporting an environment variable:

export BOILER_TEST_CAPTURE=true

The second is to run the drush casperjs command with debug mode turned on. See the Debugging section for more details on that.

The third method is to pass true as the second argument to casper.boilerCapture(). This will force capturing. Do not commit code in this state, as this means capturing will occur on all environments.

Once enabled, this command will save a screenshot to ./screenshots/my-unique-string-12345678.jpg and the HTML markup to ./pages/my-unique-string-1234578.html, where 12345678 is the current timestamp. You may need to create those directories yourself and give proper write permissions.

Alternatively, you can use casper.captureSelector('filename', 'div.some-class'); to take a screenshot of a given selector. In this case, specify a full filename to save the capture to, such as screenshots/my-selector-12345678.jpg. You can find more examples about capturing here.

Debugging

If you would like to see a more verbose output of the test suites, you can run the drush casperjs command with the -d flag:

drush casperjs -d

This will execute CasperJS with log-level set to debug. In your scripts, you can log to this debug mode by using casper.log('my message', 'debug');.

In addition, other helpful debugging tools are casper.debugPage() and casper.debugHTML().

Evaluating code

The casper.evaluate() method (and its alternatives such as casper.evaluateOrDie(), casper.thenEvaluate() or test.assertEvaluate()) are highly powerful since they will run JavaScript code on the page just as if you were debugging with the browser's JavaScript console.

About

Drupal casperjs integration

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages