Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
8614 kshitij.so 1
package com;
2
import java.io.BufferedWriter;
3
import java.io.File;
4
import java.io.IOException;
5
 
6
import com.thoughtworks.selenium.*;
7
import com.unitedinternet.portal.selenium.utils.logging.HtmlResultFormatter;
8
import com.unitedinternet.portal.selenium.utils.logging.LoggingCommandProcessor;
9
import com.unitedinternet.portal.selenium.utils.logging.LoggingDefaultSelenium;
10
import com.unitedinternet.portal.selenium.utils.logging.LoggingResultsFormatter;
11
import com.unitedinternet.portal.selenium.utils.logging.LoggingSelenium;
12
import com.unitedinternet.portal.selenium.utils.logging.LoggingUtils;
13
//import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals;
14
//import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue;
15
import org.junit.After;
16
import org.junit.Before;
17
import org.junit.Test;
18
//import org.openqa.selenium.server.SeleniumServer;
19
 
20
//import java.util.regex.Pattern;
21
 
22
public class Buyproductonprod_Tablets extends SeleneseTestBase {
23
 
24
 
25
    BufferedWriter loggingWriter;
26
    protected LoggingSelenium selenium;
27
    final String resultbasePath = "/opt/seleniumTests/results/prod";
28
    //final String resultbasePath = "/opt/seleniumTests/results";
29
    final String resultHtmlFileName = resultbasePath + "/" + "result2.html";
30
    final String resultEncoding = "UTF-8";        
31
    final String screenshotpath="screenshot";
32
    final String screenshotresultPath=new File("/var/www/results"+"/"+screenshotpath).getAbsolutePath();
33
    @Before
34
    public void setUp() throws Exception {
35
        if (!new File(screenshotresultPath).exists()) {
36
             new File(screenshotresultPath).mkdirs();
37
        }
38
        loggingWriter = LoggingUtils.createWriter(resultHtmlFileName, resultEncoding , true);
39
        LoggingResultsFormatter htmlFormatter = 
40
            new HtmlResultFormatter(loggingWriter, resultEncoding);
41
       htmlFormatter.setScreenShotBaseUri("/results"+"/"+screenshotpath+"/"); // this is for linking to the screenshots
42
       htmlFormatter.setAutomaticScreenshotPath(screenshotresultPath);
43
        // wrap HttpCommandProcessor from remote-control
44
        LoggingCommandProcessor myProcessor = 
45
        //new LoggingCommandProcessor(new HttpCommandProcessor("localhost", 4444, "*firefox", "http://saholic:shop2020@shop2020.in:8080/"), htmlFormatter);
46
        new LoggingCommandProcessor(new HttpCommandProcessor("localhost", 4444, "*firefox", "http://saholic.com/"), htmlFormatter);
47
        selenium = new LoggingDefaultSelenium(myProcessor);
48
        myProcessor.setExcludedCommands(new String[] {});
49
        selenium.start();    
50
    }
51
 
52
    @Test(expected=AssertionError.class)
53
    public void testBuyproductonprod() throws Exception {
54
        selenium.setContext("testBuyprodonprod()");
55
        selenium.setTimeout("180000");
56
        selenium.open("/");
57
        selenium.windowMaximize();
58
        com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals("Page Title Mobile Phone Reviews and Best Deals in India | saholic.com not Found","Mobile Phone Reviews and Best Deals in India | saholic.com", selenium.getTitle(),selenium);
59
        verifyTrue(selenium.isElementPresent("css=img[alt=\"Saholic\"]"));
60
        verifyTrue(selenium.isTextPresent("Search"));
61
        verifyTrue(selenium.isElementPresent("id=searchButton"));
62
        verifyEquals("BEST DEALS", selenium.getText("css=div.home-listing-common-header-text > span.left"));
63
        verifyTrue(selenium.isElementPresent("//div[@id='products']/div[2]/div/div/span"));
64
        //verifyTrue(selenium.isElementPresent("css=div.cart-top"));
65
        verifyTrue(selenium.isElementPresent("css=span.common-widget-top-bar-text-right"));
66
        verifyTrue(selenium.isElementPresent("css=#browsehistory > div.common-widget-top-bar > div.common-widget-top-bar-text > span.common-widget-top-bar-text-right"));
67
        verifyEquals("BEST SELLERS", selenium.getText("//div[@id='products']/div[3]/div/div/span"));
68
        verifyTrue(selenium.isElementPresent("css=div.home-listing-common-content.best-sellers"));
69
        verifyTrue(selenium.isElementPresent("css=div.home-listing-common-content.latest-arrivals"));
70
        verifyTrue(selenium.isElementPresent("css=div.home-listing-common-content.best-deals"));
71
        selenium.click("link=TABLETS");
72
        selenium.waitForPageToLoad("30000");
73
        Thread.sleep(8000);
74
        com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals("Tablets Price List India | Tablets | saholic.com not Found","Tablets Price List India | Tablets | saholic.com", selenium.getTitle(),selenium);
75
        verifyTrue(selenium.isElementPresent("id=catTab1-first"));
76
        verifyTrue(selenium.isElementPresent("id=catTab4-10010"));
77
        verifyTrue(selenium.isElementPresent("id=catTab3-10010"));
78
        verifyTrue(selenium.isElementPresent("id=catTab2-10010"));
79
        verifyTrue(selenium.isElementPresent("css=div.productListTop"));
80
        verifyTrue(selenium.isElementPresent("css=div.productListBottom"));
81
        verifyTrue(selenium.isElementPresent("css=div.productDetails"));
82
        verifyTrue(selenium.isElementPresent("css=div.sectionHeader"));
83
        verifyTrue(selenium.isElementPresent("css=#filterByPrice > div.filterHeading > div.sectionHeader"));
84
        verifyTrue(selenium.isElementPresent("css=div.ui-slider-range.ui-widget-header"));
85
        //verifyTrue(selenium.isElementPresent("css=div.cart-top"));
86
        //verifyTrue(selenium.isElementPresent("css=div.cart-middle"));
87
 
88
        verifyTrue(selenium.isElementPresent("css=div.common-widget-top-bar-text"));
89
        verifyTrue(selenium.isElementPresent("css=#browsehistory > div.common-widget-top-bar > div.common-widget-top-bar-text > span.common-widget-top-bar-text-right"));
90
        //verifyTrue(selenium.isElementPresent(""));
91
        verifyTrue(selenium.isTextPresent("Price"));
92
        verifyTrue(selenium.isTextPresent("Brand"));
93
        verifyTrue(selenium.isTextPresent("Camera Resolution"));
94
        for(int i=1;i<15;i++)
95
        {
96
            System.out.println("abc"+i+"");
97
            selenium.isElementPresent("dom=document.images["+i+"]");
98
            System.out.println("dom=document.images["+i+"]");
99
            assertTrue("Not able to buy Product",selenium.isElementPresent("dom=document.images["+i+"]"));
100
        selenium.click("dom=document.images["+i+"]");
101
        Thread.sleep(20000);
102
        selenium.waitForPageToLoad("30000");
103
        Thread.sleep(8000);
104
        com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue("Product detail element not found",selenium.isElementPresent("id=productDetail"),selenium);
105
        //selenium.captureScreenshot(screenshotresultPath+"/"+"ErrorPage"+".png");
106
        //com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue("Failed assert",selenium.isElementPresent("id=productDetail"),selenium);
107
        //com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue("Cart Summary not displayed",selenium.isElementPresent("css=div.cart"),selenium);
108
        //com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue("Cart Summary not displayed",selenium.isElementPresent("css=div.cart-top"),selenium);
109
        //verifyTrue(selenium.isElementPresent("css=#accessories > div.common-widget-top-bar > div.common-widget-top-bar-text"));
110
        com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue("Add to card button not present",selenium.isElementPresent("id=addToCart"),selenium);
111
        //verifyTrue(selenium.isElementPresent("css=div.cart-top"));
112
        verifyTrue(selenium.isElementPresent("css=div.common-widget-top-bar-text"));
113
        verifyTrue(selenium.isElementPresent("css=#myresearch > div.common-widget-top-bar > div.common-widget-top-bar-text"));
114
        verifyTrue(selenium.isElementPresent("css=#browsehistory > div.common-widget-top-bar > div.common-widget-top-bar-text > span.common-widget-top-bar-text-right"));
115
        //verifyTrue(selenium.isElementPresent("id=Image1"));
116
        verifyEquals("Look n Feel", selenium.getText("//ul[@id='sideNav']/li[2]/a/span"));
117
        verifyEquals("Introduction", selenium.getText("css=a.vt > span"));
118
        verifyTrue(selenium.isElementPresent("css=span.common-widget-top-bar-text-right"));
119
        selenium.setTimeout("60000");
120
        selenium.click("id=addToCart");
121
        Thread.sleep(10000);
122
        if(selenium.isVisible("id=cboxLoadedContent"))
123
        {
124
            selenium.goBack();
125
            Thread.sleep(15000);
126
            continue;
127
        }
128
        break;
129
        }
130
        Thread.sleep(10000);
131
        verifyEquals("Cart Details", selenium.getText("css=span.label"));
132
        verifyEquals("Shipping Info.", selenium.getText("//div[@id='cartFlowHeader']/div[2]/span[2]"));
133
        verifyEquals("Make Payment", selenium.getText("//div[@id='cartFlowHeader']/div[3]/span[2]"));
134
        verifyEquals("Order Status", selenium.getText("//div[@id='cartFlowHeader']/div[4]/span[2]"));
135
        verifyTrue(selenium.isElementPresent("id=zipcode"));
136
        verifyTrue(selenium.isElementPresent("id=computeEstimate"));
137
        verifyEquals("Total Amount:", selenium.getText("css=tr.total-amount.payable > td.label"));
138
        Thread.sleep(6000);
139
        verifyTrue(selenium.isElementPresent("xpath=//div[@class='cartflow-main-action-button right checkout-button-below']"));
140
        selenium.click("xpath=//div[@class='cartflow-main-action-button right checkout-button-below']");
141
        Thread.sleep(6000);
142
        selenium.type("id=loginEmail", "kshitijsood@ymail.com");
143
        selenium.type("id=loginPassword", "123abc");
144
        selenium.click("id=submitAddress");
145
        selenium.waitForPageToLoad("30000");
146
        verifyEquals("Shipping Info.", selenium.getText("//div[@id='cartFlowHeader']/div/span[2]"));
147
        verifyEquals("Item & Color", selenium.getText("css=th.first"));
148
        verifyEquals("Delivery Time", selenium.getText("//table[@id='cartDetail']/thead/tr/th[2]"));
149
        verifyEquals("Total Price", selenium.getText("//table[@id='cartDetail']/thead/tr/th[3]"));
150
        verifyTrue(selenium.isTextPresent("Select Shipping Address"));
151
        Thread.sleep(5000);
152
        com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals("Proceed to payment button not present","PROCEED TO PAYMENT >", selenium.getText("id=proceedToPay"),selenium);
153
        selenium.click("id=proceedToPay");
154
        selenium.waitForPageToLoad("30000");
155
        Thread.sleep(5000);
156
        assertEquals("Make Payment", selenium.getText("//div[@id='cartFlowHeader']/div/span[2]"));
157
        assertEquals("Order Amount:", selenium.getText("css=h4 > span"));
158
        String htmlstr = selenium.getBodyText();
159
        //System.out.println("Index is " + pos);
160
        int pos = htmlstr.indexOf("Order Amount:");
161
        //System.out.println("Index is " + pos);
162
        int pos1=pos+16;
163
        int pos2=pos+28;
164
        String amount;
165
        amount = htmlstr.substring(pos1, pos2);
166
        //System.out.println("pos1 pos2" + pos1 + ":" + pos2);
167
        //int price=Integer.parseInt(amount);
168
        //System.out.println("Amount : :" + amount + ":" + price );
169
        amount=amount.replaceAll(",", "");
170
        System.out.println("Amount : :" + amount);
171
        ///double price = Integer.parseInt(amount);
172
        double price = Double.parseDouble(amount);
173
        System.out.println("Price : :" + price);
174
        verifyTrue(selenium.isTextPresent("CREDIT CARDS"));
175
        verifyTrue(selenium.isTextPresent("EMI"));
176
        verifyTrue(selenium.isTextPresent("DEBIT/ATM CARDS"));
177
        verifyTrue(selenium.isTextPresent("NET BANKING"));
178
        verifyTrue(selenium.isTextPresent("CASH CARDS"));
179
        assertTrue(selenium.isElementPresent("css=input.make-payment-button"));
180
        if(price < 20000){
181
        verifyTrue(selenium.isTextPresent("CASH ON DELIVERY"));    
182
        selenium.click("//div[@id='vtab']/ul/li[6]");
183
        verifyTrue(selenium.isElementPresent("id=captcha_response_box"));
184
        assertTrue(selenium.isElementPresent("id=captchaImage"));
185
        assertTrue(selenium.isElementPresent("css=div.text-center > input.make-payment-button"));
186
        }
187
        selenium.deleteAllVisibleCookies();
188
    }
189
    @After
190
    public void tearDown() throws Exception {
191
        selenium.stop();
192
        //stopSeleniumServer();
193
        try {
194
            if (null != loggingWriter) {
195
                loggingWriter.close();
196
            }
197
        } catch (IOException e) {
198
          System.out.println("IO exception");
199
        }
200
    }
201
}