public String getRecord(String tableName, int recordId) { Iterator<Table> it = Tables.iterator(); int pageID = -2; Pages P = null; while (it.hasNext()) { Table T = it.next(); if (T.getTableName().equals(tableName)) { pageID = T.getPageId(recordId); break; } } if (pageID == -1) { System.out.println("Invalid Record Request"); return null; } else if (pageID == -2) { System.out.println("Invalid Table Name"); return null; } else { P = MM.getPage(pageID, tableName, 0); return P.getRecFromId(recordId); } }
@Test(expected = WrongPageError.class) public void the_pages_object_throws_a_wrong_page_error_when_the_page_object_doesnt_have_a_webdriver_constructor() { when(driver.getCurrentUrl()).thenReturn("http://www.google.com"); final Pages pages = new Pages(driver, configuration); pages.currentPageAt(PageObjectWithNoDriverConstructor.class); }
@Test public void should_open_initial_page_when_driver_opens() { Pages pages = new Pages(driver, configuration); pages.setDefaultBaseUrl("http://www.google.com"); pages.notifyWhenDriverOpens(); verify(driver).get("http://www.google.com"); }
@Test public void should_not_open_initial_page_when_driver_opens_if_using_a_proxied_driver() { Pages pages = new Pages(driverProxy); pages.setDefaultBaseUrl("http://www.google.com"); pages.notifyWhenDriverOpens(); verify(driver, never()).get("http://www.google.com"); }
@Test(expected = WrongPageError.class) public void the_pages_object_throws_a_wrong_page_error_when_the_page_object_is_invalid() { when(driver.getCurrentUrl()).thenReturn("http://www.google.com"); final Pages pages = new Pages(driver, configuration); pages.start(); pages.currentPageAt(InvalidHomePage.class); }
@Test public void the_pages_object_knows_when_we_are_not_on_the_right_page() { when(driver.getCurrentUrl()).thenReturn("http://www.google.org"); final Pages pages = new Pages(driver, configuration); pages.start(); assertThat(pages.isCurrentPageAt(ApacheHomePage.class), is(false)); }
@Test public void should_be_able_to_retrieve_the_current_page_as_an_instance_of_AnyPage() { when(driver.getCurrentUrl()).thenReturn("http://www.apache.org"); final Pages pages = new Pages(driver, configuration); pages.start(); AnyPage currentPage = pages.getAt(AnyPage.class); assertThat(currentPage, is(not(nullValue()))); }
@Test public void the_getAt_method_is_Groovy_shorthand_for_currentPageAt() { when(driver.getCurrentUrl()).thenReturn("http://www.apache.org"); final Pages pages = new Pages(driver, configuration); pages.start(); assertThat( pages.getAt(ApacheHomePage.class).getClass().getName(), is(ApacheHomePage.class.getName())); }
@Test public void should_requery_driver_for_each_page_request() { when(driver.getCurrentUrl()).thenReturn("http://www.google.com"); Pages pages = new Pages(driver, configuration); pages.setDefaultBaseUrl("http://www.google.com"); GooglePage page1 = pages.get(GooglePage.class); GooglePage page2 = pages.get(GooglePage.class); assertThat(page2, is(not(page1))); }
public void insertRecord(String tableName, String record) { Iterator<Table> it = Tables.iterator(); TableList TL = null; Pages P = null; Table T = null; while (it.hasNext()) { T = it.next(); if (T.getTableName().equals(tableName)) { TL = T.getLastPage(); break; } } if (record.length() < TL.getAvailableSpace()) { P = MM.getPage(TL.getPageId(), tableName, 1); P.insertRec(record); T.updatePage(P); TL.setEndId(P.getEndId()); TL.setAvailableSpace(P.getAvailableSpace()); } else { P = new Pages(TL.getEndId() + 1, pageSize, TL.getPageId() + 1); P.insertRec(record); TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace()); P = MM.getPage(TL.getPageId(), tableName, 1); T.insertPage(P); T.insertTableList(TL); } }
@Test public void should_use_the_same_page_object_if_we_indicate_that_are_on_the_same_unchanged_page() { when(driver.getCurrentUrl()).thenReturn("http://www.google.com"); Pages pages = new Pages(driver, configuration); pages.setDefaultBaseUrl("http://www.google.com"); GooglePage page1 = pages.get(GooglePage.class); pages.onSamePage(); GooglePage page2 = pages.get(GooglePage.class); assertThat(page2, is(page1)); }
@Test public void the_pages_object_should_have_a_default_starting_point_url() { final String baseUrl = "http://www.google.com"; final Pages pages = new Pages(driver, configuration); pages.setDefaultBaseUrl(baseUrl); pages.start(); verify(driver).get(baseUrl); }
// Change the page // Update Webview, Toolbar, Refresh button... void changePage(Pages newPage) { actual = newPage; // Handle tabs tabs.removeAllTabs(); if (newPage.tabs != null && newPage.tabs.contains("||")) { showTabs(); for (String s : newPage.tabs.split("\\|\\|")) { tabs.addTab(tabs.newTab().setText(s)); } if (newPage.url != null) { newPage.actualURL = newPage.url.split("\\|\\|")[0]; } if (newPage.localPage != null) { newPage.actualAlternativeURL = newPage.localPage.split("\\|\\|")[0]; } // There are no tabs... } else { hideTabs(); newPage.actualURL = newPage.url; newPage.actualAlternativeURL = newPage.localPage; } // Enable JS for the webview webView.getSettings().setJavaScriptEnabled(true); // Load URL to the webview... if (newPage.url != null) { webView.loadUrl(newPage.actualURL); } else { if (newPage.localPage != null) // ...Or use local page webView.loadUrl("file:///android_asset/" + newPage.actualAlternativeURL); } // Update Toolbar and Statusbar toolbar.setBackgroundColor(newPage.actionBarColor.value); drawerLayout.setBackgroundColor(newPage.actionBarColor.value); drawerLayout.closeDrawers(); toolbar.setTitle(newPage.title); // Show refresh button if (refreshButton != null) { if (newPage.refreshButton) { refreshButton.setVisible(true); } else { refreshButton.setVisible(false); } } actual = newPage; }
@Test public void the_default_starting_point_url_can_be_overriden_by_a_system_property() { final String systemDefinedBaseUrl = "http://www.google.com.au"; Configuration Configuration = new SystemPropertiesConfiguration(environmentVariables); final Pages pages = new Pages(driver, Configuration); environmentVariables.setProperty("webdriver.base.url", systemDefinedBaseUrl); pages.start(); verify(driver).get(systemDefinedBaseUrl); }
@Test public void the_default_starting_point_url_can_refer_to_a_file_on_the_classpath() { final String baseUrl = "classpath:static-site/index.html"; final Pages pages = new Pages(driver, configuration); pages.setDefaultBaseUrl(baseUrl); URL staticSiteUrl = Thread.currentThread().getContextClassLoader().getResource("static-site/index.html"); pages.start(); verify(driver).get(staticSiteUrl.toString()); }
@Test public void should_register_proxy_drivers_when_driver_opens() { Pages pages = new Pages(driverProxy) { @Override protected WebdriverProxyFactory getProxyFactory() { return proxyFactory; } }; pages.setDefaultBaseUrl("http://www.google.com"); pages.notifyWhenDriverOpens(); verify(proxyFactory).registerListener(any(PagesEventListener.class)); }
private void selectPage(RequestInfo requestInfo) { String path = requestInfo.getPath(); if (path.equals("/hello")) { sleep(); requestInfo.writeResponse(Pages.getHelloPage()); } else if (path.equals("/status")) { requestInfo.writeResponse(Pages.getStatisticsPage()); } else if (path.equals("/redirect") && requestInfo.getUrl() != null) { requestInfo.redirect(requestInfo.getUrl()); } else { requestInfo.writeResponse(Pages.getNotFoundPage()); } }
// Handle menu-clicks @Override public boolean onOptionsItemSelected(MenuItem item) { // Share if (item.getTitle().toString().equals(getString(R.string.share))) { Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType("text/plain"); sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Pages.values()[0].shareText); sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, ""); startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_using))); return super.onOptionsItemSelected(item); } // Refresh if (item.getTitle().toString().equals(getString(R.string.refresh))) { if (actual.url != null) { System.out.println(actual.url); webView.reload(); webView.loadUrl(actual.url); } return super.onOptionsItemSelected(item); } // Page for (Pages p : Pages.values()) { if (p.title.equals(item.getTitle().toString())) { if (p.url.contains("http:") || p.url.contains("http:")) { changePage(p); } else { // Handle special Intents (e.g. for mailto: in the menu) Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(p.url)); PackageManager manager = getPackageManager(); List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0); if (infos.size() > 0) { startActivity(intent); } } } } return super.onOptionsItemSelected(item); }
// Create OptionsMenu @Override public boolean onCreateOptionsMenu(Menu menu) { // Create the menu getMenuInflater().inflate(R.menu.main, menu); // Add pages to the menu for (Pages p : Pages.values()) { if (p.menu != false) menu.add(p.title); } // Refresh button refreshButton = menu.add(R.string.refresh); if (actual.useWhiteFont) { refreshButton.setIcon(R.drawable.ic_autorenew_white_36dp); } else { refreshButton.setIcon(R.drawable.ic_autorenew_black_36dp); } refreshButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Share button if (Pages.values()[0].share) { MenuItem shareItem = menu.add(getString(R.string.share)); if (actual.shareAsAction) { if (actual.useWhiteFont) shareItem.setIcon(R.drawable.ic_share_white_36dp); else shareItem.setIcon(R.drawable.ic_share_black_36dp); shareItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } } // Show/hide refresh button for the first page if (actual != null) { if (actual.refreshButton) { refreshButton.setVisible(true); } else { refreshButton.setVisible(false); } } return true; }
@Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (args.length > 0) { String name = (sender instanceof Player ? sender.getName() : null); boolean next = args[0].equalsIgnoreCase("next"); if (next || args[0].equalsIgnoreCase("prev")) { Pages pages = pagination.get(name); if (pages != null) { if (next ? pages.hasNext() : pages.hasPrev()) { String page = (next ? pages.next() : pages.prev()); Messages.CMD_RECIPES_HEADER.print( sender, null, "{item}", Tools.Item.print(pages.item), "{num}", (pages.page + 1), "{total}", pages.pages.length); Messages.send(sender, page); if (pages.hasNext()) { Messages.CMD_RECIPES_MORE.print( sender, null, "{cmdnext}", "/" + label + " next", "{cmdprev}", "/" + label + " prev"); } else { Messages.CMD_RECIPES_END.print(sender); } } else { if (next) { Messages.CMD_RECIPES_NONEXT.print(sender, null, "{command}", "/" + label + " prev"); } else { Messages.CMD_RECIPES_NOPREV.print(sender, null, "{command}", "/" + label + " next"); } } } else { Messages.CMD_RECIPES_NEEDQUERY.print(sender); } } else { ItemStack item; if (args[0].equalsIgnoreCase("this")) { if (sender instanceof Player) { Player player = (Player) sender; item = player.getItemInHand(); if (item == null) { Messages.CMD_RECIPES_NOHAND.print(sender); return true; } } else { sender.sendMessage("The 'this' argument can't be used from console."); return true; } } else { item = Tools.parseItem(args[0], Vanilla.DATA_WILDCARD, ParseBit.NO_META | ParseBit.NO_PRINT); if (item == null) { Messages.CMD_RECIPES_INVALIDITEM.print(sender, null, "{arg}", args[0]); return true; } } boolean ingredient = (args.length > 1 && args[1].charAt(0) == 'i'); List<String> list = new ArrayList<String>(); for (Entry<BaseRecipe, RecipeInfo> e : RecipeManager.getRecipes().getRecipeList().entrySet()) { BaseRecipe recipe = e.getKey(); if (hasItem(recipe, item, ingredient)) { list.add(recipe.printChat()); } } if (!list.isEmpty()) { Pages pages = new Pages(name, item, list); pagination.put(name, pages); Messages.CMD_RECIPES_HEADER.print( sender, null, "{item}", Tools.Item.print(pages.item), "{num}", 1, "{total}", pages.pages.length); Messages.send(sender, pages.next()); if (pages.hasNext()) { Messages.CMD_RECIPES_MORE.print( sender, null, "{cmdnext}", "/" + label + " next", "{cmdprev}", "/" + label + " prev"); } else { Messages.CMD_RECIPES_END.print(sender); } } else { Messages.CMD_RECIPES_NORESULTS.print(sender, null, "{item}", Tools.Item.print(item)); } } } else { int mc = 0; int rm = 0; int other = 0; for (RecipeInfo info : RecipeManager.getRecipes().getRecipeList().values()) { switch (info.getOwner()) { case MINECRAFT: { mc++; break; } case RECIPEMANAGER: { rm++; break; } default: { other++; } } } Messages.CMD_RECIPES_USAGE.print(sender, null, "{command}", label); Messages.CMD_RECIPES_STATS_MC.print(sender, null, "{num}", mc); Messages.CMD_RECIPES_STATS_RM.print(sender, null, "{num}", rm); Messages.CMD_RECIPES_STATS_OTHER.print(sender, null, "{num}", other); } return true; }
public void populateDBInfo() { Iterator<Table> it = Tables.iterator(); String fileName, line; Pages P; TableList TL = null; Table T; int recCount, pageCount; while (it.hasNext()) { // for all the tables T = it.next(); P = null; TL = null; fileName = pathForData + T.getTableName() + ".csv"; recCount = 0; pageCount = 0; try { BufferedReader br = new BufferedReader(new FileReader(fileName)); // create an empty page P = new Pages(recCount, pageSize, pageCount++); while ((line = br.readLine()) != null) { // process the line. if (P.checkSpace(line.length())) { P.insertRec(line); recCount += 1; } else { // save the current page TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace()); T.insertPage(P); T.insertTableList(TL); /*System.out.println(T.noOfPages); for (String s : P.recordsInPage ){ System.out.println(s); }*/ T.noOfPages += 1; // start a new page to store records. P = new Pages(recCount, pageSize, pageCount++); if (P.checkSpace(line.length())) { P.insertRec(line); recCount += 1; } } } br.close(); } catch (FileNotFoundException e) { // Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // Auto-generated catch block e.printStackTrace(); } // saving the last page if (P.getAvailableSpace() < pageSize) { TL = new TableList(P.getStartId(), P.getEndId(), P.getPageId(), P.getAvailableSpace()); T.insertPage(P); T.insertTableList(TL); /*System.out.println(T.noOfPages); for (String s : P.recordsInPage ){ System.out.println(s); }*/ T.noOfPages += 1; } } }
@FXML public void saveLinkAction(ActionEvent event) throws Exception { Map<String, Page> pageMap = Pages.getMap(); String[] list = Pages.getSiteList(); if (ch1.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[0])); } if (ch2.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[1])); } if (ch3.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[2])); } if (ch4.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[3])); } if (ch5.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[4])); } if (ch6.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[5])); } if (ch7.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[6])); } if (ch8.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[7])); } if (ch9.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[8])); } if (ch10.isSelected()) { Pages.addPage(_pageName, pageMap.get(list[9])); } returnToAddLink(event); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* Views */ toolbar = (Toolbar) findViewById(R.id.toolbar); list = (ListView) findViewById(R.id.listView); webView = (WebView) findViewById(R.id.webView); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); tabs = (TabLayout) findViewById(R.id.tabs); /* Tabs */ // Tabs are invisible hideTabs(); // Listener to receive tab changes tabs.setOnTabSelectedListener( new TabLayout.OnTabSelectedListener() { // User selected new tab @Override public void onTabSelected(TabLayout.Tab tab) { // Find page for (Pages p : Pages.values()) { if (p.title.equals(actual.title)) { // Load URL in webview if (actual.url != null) actual.actualURL = p.url.split("\\|\\|")[tab.getPosition()]; if (actual.localPage != null) actual.actualAlternativeURL = actual.localPage.split("\\|\\|")[tab.getPosition()]; } } if (actual.url != null) { webView.loadUrl(actual.actualURL); } else { if (actual.localPage != null) webView.loadUrl("file:///android_asset/" + actual.actualAlternativeURL); } } // We don't need this methods @Override public void onTabUnselected(TabLayout.Tab tab) {} @Override public void onTabReselected(TabLayout.Tab tab) {} }); /* Drawer items */ // Create list of all items for the drawer final ArrayList<Pages> pages = new ArrayList<Pages>(); for (Pages p : Pages.values()) { if (p.menu == false) pages.add(p); } // Set actual page to the first item if (actual == null) { actual = pages.get(0); } /* White design */ if (actual.useWhiteFont) { toolbar.setTitleTextColor(0xFFFFFFFF); tabs.setTabTextColors(0xFFFFFFFF, 0xFFFFFFFF); } /* Toolbar */ toolbar.setTitle(actual.title); setSupportActionBar(toolbar); /* Admob */ AdView mAdView = (AdView) findViewById(R.id.adView); // Hide AdView when not needed if (!actual.useAds) { mAdView.setVisibility(View.INVISIBLE); } else { // Init AdView when needed AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); } /* Drawer */ ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle( this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawerLayout.setDrawerListener(mDrawerToggle); drawerLayout.setDrawerShadow(R.drawable.shadow, Gravity.LEFT); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerToggle.syncState(); /* Pages to drawer */ // Add pages to the drawer ListAdapter adapter = new ListAdapter(this, pages); list.setAdapter(adapter); adapter.notifyDataSetChanged(); /* Webview */ webView.getSettings().setJavaScriptEnabled(true); webView.setWebViewClient( new WebViewClient() { // Handle URL loading // Handle Intents (e.g. mailto:) @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if ((url.contains("http:") || url.contains("https:")) && actual.homeDomains.contains(URI.create(url).getHost())) { view.loadUrl(url); return false; } else { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); PackageManager manager = getPackageManager(); List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0); if (infos.size() > 0) { startActivity(intent); } return true; } } // Needed for correct back-button functionality @Override public void onPageFinished(WebView view, String url) { webView.clearHistory(); super.onPageFinished(view, url); } // Handle loading errors @Override public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { if (actual.actualAlternativeURL != null) webView.loadUrl("file:///android_asset/" + actual.actualAlternativeURL); else view.loadData(actual.error, "text/html", actual.localEncoding); } }); /* Site listener */ // Change page via drawer list.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { changePage(pages.get(position)); } }); /* Update */ // Load actual (first) page changePage(actual); }