Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

Hubik-Plugin

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Hubik-Plugin

The plugin constructor of Hubik.

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Hubik-Plugin

The plugin constructor of Hubik.

Hubik only focuses on automated test on chromium based platform.The Hubik-Plugin will provide other custom features such as 'performance, verification'.The automated process is separated into three periods.

  1. Initialization (Launching the platform.)
  2. Navigation (Loading the url of the web app.)
  3. Automation (Running the automated test.Automation is an ordered chain of automated actions.)

The plugins can register hooks to these specific time and run its own logic. Hubik-Plugin also provides interfaces to let the plugin use Chrome Remote Debugging Protocol.


Requirement

  • Mac OSX
  • Nodejs > 5.0.0

Installation

npm install hubik-plugin

Usage

var HubikPlugin = require("hubik-plugin");

module.exports = new HubikPlugin("Plugin-Name",function($hook){
    //Before launching the platform
    $hook.on("Initialization.beforeStart",function($platform,$resolve,$reject,$args,$process){
        $resolve() //Each hook must call '$resolve' after running its own logic to continue the automated process.  
    });
    //After launching the platform
    $hook.on("Initialization.afterEnd",function($platform,$resolve,$reject,$args,$process){
        $resolve()  
    });
    //Before loading the url
    $hook.on("Navigation.beforeStart",function($resolve,$reject,$runtime,$args,$process){
        $resolve() 
    });
    //After loading the url
    $hook.on("Navigation.afterEnd",function($resolve,$reject,$runtime,$args,$process){
        $resolve()  
    });
    //Before running the automated test
    $hook.on("Automation.beforeStart",function($resolve,$reject,$runtime,$args,$process){
        $resolve()        
    });
    //Before executing the specific automated action
    $hook.on("Automation.beforeAction",function($resolve,$reject,$runtime,$action,$args,$process){
        $resolve()
    });
    //After executing the specific automated action
    $hook.on("Automation.afterAction",function($resolve,$reject,$runtime,$action,$args,$process){
        $resolve()
    });
    //After running the automated test
    $hook.on("Automation.afterEnd",function($resolve,$reject,$runtime,$args,$process){
        $resolve()
    });
});

Documentation

var HubikPlugin = require("hubik-plugin");

new HubikPlugin(pluginName = String,function($hook){})

Create a new hubik plugin. The first param is the name of the plugin. The second param is the callback function which contains the main logic of the plugin. Hubik will inject the hook object into the callback function.

$hook

$hook.on(hookTime = String,function(...){})

Hubik plugin can register hook to specific hook time.

Hook TimeDescription
Initialization.beforeStartBefore launching the platform
Initialization.afterEndAfter launching the platform
Navigation.beforeStartBefore loading the web app
Navigation.afterEndAfter loading the web app
Automation.beforeStartBefore running the automated test
Automation.afterActionBefore executing the specific action in the automated task
Automation.afterActionAfter executing the specific action in the automated task
Automation.afterEndAfter running the automated test
1. $hook.on("Initialization.beforeStart",function($platform,$resolve,$reject,$args,$process){})
2. $hook.on("Initialization.afterEnd",function($platform,$resolve,$reject,$args,$process){})

Hubik will inject some useful objects into the callback function.The dependency injection is used here. The order and number of the params isn't stable.Just list the needed params when using the injected objects.

$platform
(1). $platform.setCmds(chromiumCommands = Array)

Set some chromium commands before launching the platform.

$platform.setCmds([
    "--disable-extensions"
])
(2). $platform.getName()

Get the name of the platform.

$resolve()

Continue the test process by calling $resolve

$reject()

Stop the test process by calling $reject

$args

The arguments object which was passed from the test suite.It can include some dynamic information such as user name.

$process
(1). $process.restart

Restart the whole test process with the same input.

3. $hook.on("Navigation.beforeStart",function($resolve,$reject,$runtime,$args,$process){})
4. $hook.on("Navigation.afterEnd",function($resolve,$reject,$runtime,$args,$process){})
5. $hook.on("Automation.beforeStart",function($resolve,$reject,$runtime,$args,$process){});
6. $hook.on("Automation.afterEnd",function($resolve,$reject,$runtime,$args,$process){});
$runtime
(1). $runtime.send(domainMethod = String,methodsParams = Object,callback = Function)

Send commands according to Chrome remote debugging protocol. The first param is the domain method, please check out Chrome Debugging Protocol Viewer . The second param is the param of this doamin method. The third param is the callback function of this command.

(2). $runtime.addEventListener(domainEvent = String,callback = Function)

Add event Listener to Chrome remote debugging protocol. The first param is the domain method, please check out Chrome Debugging Protocol Viewer . The second param is the callback function of this command.

(3). $runtime.evalute(script = String,callback = Function)

Execute a snippet of javascript in the runtime of the platform. The first param is a snippet of javascript. The second param is the callback function of this command.

(4). var timeline = $runtime.timeline(callback = Function)

Collecting timeline information. The only param is a callback function which will be used to receive results.

timeline.start()

Start collecting timeline information.

timeline.end()

Stop collecting timeline information.

7.$hook.on("Automation.beforeAction",function($resolve,$reject,$runtime,$action,$args,$process){});
8.$hook.on("Automation.afterAction",function($resolve,$reject,$runtime,$action,$args,$process){});
$action

The information of this action.

(1). RUNTIME action
{ _index: 0,
  script: 'document.body.innerHTML = "<div>Hello World</div>"',
  type: 'RUNTIME',
  callback: function(){} }
(2). KEY action
{ _index: 0, name: 'up', code: 38, type: 'KEY' }

Demo

Hubik-Plugin-Memory
Hubik-Plugin-Rendering
Hubik-Plugin-Network

FAQs

Package last updated on 01 Nov 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc