Skip to content

Commit

Permalink
Add Puppeteer testing tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
oliverdunk committed Oct 9, 2023
1 parent a1c97b5 commit a98e1af
Show file tree
Hide file tree
Showing 7 changed files with 1,989 additions and 2 deletions.
3 changes: 2 additions & 1 deletion api-samples/history/showHistory/manifest.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"name": "Typed URL History",
"version": "1.3",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0FAp+xWiJpGBmsKPhGcqF4/gQN9F5tmXgEVYEHUHc8HcBIUcT+9w+jo4q2OtXa2ThqgEXsx2zcNZIWJ/5yXcofVry5E2/HKBuLWHNtYOlI1rhwc/CLujo0RHhzF7rIiYcMPQdBhzr6L0u5u9N29VUWjLozltquKRcUbjXNe4LT7+q/akhn5tvfvWHkQ9qC6mRjvGwGTFlh1A6+vWKKSVYx/J+IBHW+I2X5NlAxwG734OMYVWRWK487jf1wsWZ2jHRTqg9TB3htT+84r7+E3kFYMycow9+2EhvoI2k5VGhZw1tAJcpie1Poozc5u8CTrZ4sZ5LK4h59OCOxmejC048QIDAQAB",
"description": "Uses the chrome.history API to display in a popup the user's most visited pages.",
"permissions": ["history"],
"action": {
"default_popup": "typed-urls.html",
"default_popup": "popup.html",
"default_icon": "clock.png"
},
"manifest_version": 3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<body>
<h2>Recently Typed URLs:</h2>
<script src="typed-urls.js"></script>
<script src="popup.js"></script>
<div id="typedUrl_div"></div>
</body>
</html>
File renamed without changes.
11 changes: 11 additions & 0 deletions functional-samples/tutorial.puppeteer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Tutorial: Testing Chrome Extensions with Puppeteer

## Overview

This is the sample code for the [Testing Chrome Extensions with Puppeteer](https://developer.chrome.com/docs/extensions/mv3/tut_puppeteer-testing/) tutorial.

## Running the tests

1. Install [Node.JS](https://nodejs.org/).
2. Run `npm install`.
3. Run `npm start`.
43 changes: 43 additions & 0 deletions functional-samples/tutorial.puppeteer/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// eslint-disable-next-line no-undef
const puppeteer = require('puppeteer');

const EXTENSION_PATH = '../../api-samples/history/showHistory';
const EXTENSION_ID = 'jkomgjfbbjocikdmilgaehbfpllalmia';

async function run() {
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${EXTENSION_PATH}`,
`--load-extension=${EXTENSION_PATH}`
]
});

const page = await browser.newPage();
await page.goto(`chrome-extension://${EXTENSION_ID}/popup.html`);

const list = await page.$('ul');
const children = await list.$$('li');

if (children.length !== 1) {
throw new Error('Unexpected number of list elements!');
}

await browser.close();
}

run();
Loading

0 comments on commit a98e1af

Please sign in to comment.