Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2078aa9

Browse files
authored
Add dom fixture for autofilled form state (facebook#17951)
1 parent 3e9251d commit 2078aa9

File tree

3 files changed

+121
-0
lines changed

3 files changed

+121
-0
lines changed

fixtures/dom/src/components/Header.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class Header extends React.Component {
8686
<option value="/mouse-events">Mouse Events</option>
8787
<option value="/selection-events">Selection Events</option>
8888
<option value="/suspense">Suspense</option>
89+
<option value="/form-state">Form State</option>
8990
</select>
9091
</label>
9192
<label htmlFor="global_version">
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import Fixture from '../../Fixture';
2+
const React = window.React;
3+
4+
class ControlledFormFixture extends React.Component {
5+
constructor(props) {
6+
super(props);
7+
this.state = {name: '', email: ''};
8+
9+
this.handleEmailChange = this.handleEmailChange.bind(this);
10+
this.handleNameChange = this.handleNameChange.bind(this);
11+
}
12+
13+
handleEmailChange(event) {
14+
this.setState({email: event.target.value});
15+
}
16+
17+
handleNameChange(event) {
18+
this.setState({name: event.target.value});
19+
}
20+
21+
render() {
22+
return (
23+
<Fixture>
24+
<form>
25+
<label>
26+
Name:
27+
<input
28+
type="text"
29+
value={this.state.name}
30+
onChange={this.handleNameChange}
31+
name="name"
32+
x-autocompletetype="name"
33+
/>
34+
</label>
35+
<br />
36+
<label>
37+
Email:
38+
<input
39+
type="text"
40+
value={this.state.email}
41+
onChange={this.handleEmailChange}
42+
name="email"
43+
x-autocompletetype="email"
44+
/>
45+
</label>
46+
</form>
47+
<br />
48+
<div>
49+
<span>States</span>
50+
<br />
51+
<span>Name: {this.state.name}</span>
52+
<br />
53+
<span>Email: {this.state.email}</span>
54+
</div>
55+
</Fixture>
56+
);
57+
}
58+
}
59+
60+
export default ControlledFormFixture;
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import FixtureSet from '../../FixtureSet';
2+
import TestCase from '../../TestCase';
3+
import ControlledFormFixture from './ControlledFormFixture';
4+
const React = window.React;
5+
6+
export default class FormStateCases extends React.Component {
7+
render() {
8+
return (
9+
<FixtureSet title="Form State">
10+
<TestCase
11+
title="Form state autofills from browser"
12+
description="Form start should autofill/autocomplete if user has autocomplete/autofill information saved. The user may need to set-up autofill or autocomplete with their specific browser.">
13+
<TestCase.Steps>
14+
<li>
15+
Set up autofill/autocomplete for your browser.
16+
<br />
17+
Instructions:
18+
<ul>
19+
<li>
20+
<SafeLink
21+
href="https://support.google.com/chrome/answer/142893?co=GENIE.Platform%3DDesktop&hl=en"
22+
text="Google Chrome"
23+
/>
24+
</li>
25+
<li>
26+
<SafeLink
27+
href="https://support.mozilla.org/en-US/kb/autofill-logins-firefox"
28+
text="Mozilla FireFox"
29+
/>
30+
</li>
31+
<li>
32+
<SafeLink
33+
href="https://support.microsoft.com/en-us/help/4027718/microsoft-edge-automatically-fill-info"
34+
text="Microsoft Edge"
35+
/>
36+
</li>
37+
</ul>
38+
</li>
39+
<li>Click into any input.</li>
40+
<li>Select any autofill option.</li>
41+
</TestCase.Steps>
42+
<TestCase.ExpectedResult>
43+
Autofill options should appear when clicking into fields. Selected
44+
autofill options should change state (shown underneath, under
45+
"States").
46+
</TestCase.ExpectedResult>
47+
<ControlledFormFixture />
48+
</TestCase>
49+
</FixtureSet>
50+
);
51+
}
52+
}
53+
54+
const SafeLink = ({text, href}) => {
55+
return (
56+
<a target="_blank" rel="noreferrer" href={href}>
57+
{text}
58+
</a>
59+
);
60+
};

0 commit comments

Comments
 (0)