Overview
A test library to mock out the Google Publisher Tag library.
Installation
You can include gpt-mock
using npm:
npm install --save-dev gpt-mock
Accessing
ES6/ES2015
import GPT from 'gpt-mock';
AMD
define(['gpt-mock'], function(GPT) {
});
CommonJS
var GPT = require('gpt-mock');
Usage
This library is used to mock out the Google Publisher Tag (GPT) library, so the most natural way to use this would be:
window.googletag = new GPT();
Note that the instance is left as "unloaded", meaning apiReady
will be false, and googletag.cmd.push
will only accumulate the functions.
To mark the tag library as having been loaded, use the following:
window.googletag._loaded();
This library is intended to be as API-compatible as possible with the production code. Any member
that starts with an underscore (_
) is not part of the API and is a mock implementation detail.
Help/Bugs/Requests
We
Have a problem? Need help? Would you like additional functionality added? We use GitHub's ticket system for keeping track of these requests.
Please check out the existing issues, and if you don't see that your problem is already being worked on, please file a new issue. The more information the better to describe your problem.
Contributing
We
Please see CONTRIBUTING.md for full details.
Environment
The project requires nodejs (>=5.6) and npm (>=3.6.0) for development. It has no runtime dependencies.
Developing
Check the code out and install the development dependencies using:
npm install
Building
To build the code, run
npm run build
Linting
We use ESLint and JSCS to do static analysis of the JavaScript and keep things smelling good. To run both, use:
npm run lint
Testing
Using travis-ci, the Mocha unit tests are run on every commit using PhantomJS to run the tests with a real browser.
To test the code locally, you can use:
npm test
To run tests in Test-Driven-Development mode, where the test will be run after every change, use:
npm run tdd
Issue Guidelines
Please add a failing bug test and create a Pull Request.
License
See LICENSE.
Some of the documentation incorporated into this source code is based on the Google documentation which is licensed under the Creative Commons Attribution 3.0 License. Some of the material may have been modified for use in this library. Copyright of the incorporated documentation remains Google, Inc. Google is a registered trademark of Google and/or its affiliates and this project is not intended to represent that Google endorses this library.